From a554532c10a71cd92e97a93bc910b4db20a59163 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Thu, 29 Dec 2022 13:11:50 +0100 Subject: [PATCH 001/100] make openclsim moving compatible with opentnsim moving, use opentnsim movable as an example in moveactivity --- notebooks/32_openclsim_opentnsim.ipynb | 259 +++++++++++++++++++++++++ src/openclsim/core/movable.py | 72 ++++++- 2 files changed, 325 insertions(+), 6 deletions(-) create mode 100644 notebooks/32_openclsim_opentnsim.ipynb diff --git a/notebooks/32_openclsim_opentnsim.ipynb b/notebooks/32_openclsim_opentnsim.ipynb new file mode 100644 index 00000000..7fe093b4 --- /dev/null +++ b/notebooks/32_openclsim_opentnsim.ipynb @@ -0,0 +1,259 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "bf80dcb5", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "import time\n", + "\n", + "import simpy\n", + "import pandas as pd\n", + "import shapely\n", + "\n", + "import openclsim\n", + "import openclsim.model\n", + "import opentnsim\n", + "import networkx as nx\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3e4a3b86", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)\n", + "graph = nx.Graph()\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3be50ba8", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b2ee2d9a", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for from_site (note: in this example we only need the start location)\n", + "location_from_site = shapely.geometry.Point(4.18055556, 52.18664444)\n", + "\n", + "# prepare input data for to_site\n", + "location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + "data_to_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"to_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 100,\n", + " \"level\": 100\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5bba2225", + "metadata": {}, + "outputs": [], + "source": [ + "# create a location based graph (with geometry as nodes)\n", + "my_env.graph.add_node(location_from_site, **{\"geometry\": location_from_site})\n", + "my_env.graph.add_node(location_to_site, **{\"geometry\": location_to_site})\n", + "my_env.graph.add_edge(location_from_site, location_to_site)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "bed66786", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"vessel01\",\n", + " \"geometry\": location_from_site, \n", + " \"capacity\": 5,\n", + " \"v\": 10,\n", + " \"route\": [location_from_site, location_to_site]\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "34f963b3", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "88cabb7c", + "metadata": {}, + "outputs": [], + "source": [ + "activity = openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"Move activity\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=to_site,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "485057d1", + "metadata": {}, + "outputs": [], + "source": [ + "# initate the simpy processes defined in the 'move activity' and run simpy\n", + "openclsim.model.register_processes([activity])\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "44e6f1a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityState
074edfe04-f803-4508-aca0-869c02e835ca1970-01-01 00:00:00.000000START
174edfe04-f803-4508-aca0-869c02e835ca1970-01-01 00:15:42.824591STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\n", + "0 74edfe04-f803-4508-aca0-869c02e835ca 1970-01-01 00:00:00.000000 \n", + "1 74edfe04-f803-4508-aca0-869c02e835ca 1970-01-01 00:15:42.824591 \n", + "\n", + " ActivityState \n", + "0 START \n", + "1 STOP " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(activity))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 59f5ecc6..82cfdc8c 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -1,7 +1,9 @@ """Component to move the simulation objects.""" import logging +import warnings import shapely.geometry +import networkx as nx from .container import HasContainer, HasMultiContainer from .locatable import Locatable @@ -11,6 +13,18 @@ logger = logging.getLogger(__name__) +class Routable(SimpyObject): + """Mixin class: Something with a route (networkx node list format) + + - route: list of node-IDs + - + """ + + def __init__(self, route, *args, **kwargs): + super().__init__(*args, **kwargs) + self.route = route + + class Movable(SimpyObject, Locatable): """ Movable class. @@ -26,15 +40,18 @@ class Movable(SimpyObject, Locatable): def __init__(self, v: float = 1, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" - self.v = v + self._v = v - def move(self, destination, engine_order=1.0, duration=None): + def move(self, destination=None, engine_order=1.0, duration=None): """ Determine distance between origin and destination. Yield the time it takes to travel based on speed properties and load factor of the speed. """ + if destination is None: + raise ValueError("Movable in OpenCLSim does not support empty destination") + # Log the start event self.log_entry( self.env.now, @@ -64,7 +81,15 @@ def move(self, destination, engine_order=1.0, duration=None): ) @property - def current_speed(self): + def v(self): + return self._v + + @property + def currentspeed(self): + warnings.warn( + "The property `.currentspeed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) return self.v def sailing_duration(self, origin, destination, engine_order, verbose=True): @@ -73,7 +98,7 @@ def sailing_duration(self, origin, destination, engine_order, verbose=True): dest = shapely.geometry.shape(destination.geometry) _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) - return distance / (self.current_speed * engine_order) + return distance / (self.v * engine_order) class ContainerDependentMovable(Movable, HasContainer): @@ -98,11 +123,19 @@ def __init__(self, compute_v, *args, **kwargs): self.compute_v = compute_v @property - def current_speed(self): + def v(self): return self.compute_v( self.container.get_level() / self.container.get_capacity() ) + @property + def currentspeed(self): + warnings.warn( + "The property `.currentspeed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) + return self.v + class MultiContainerDependentMovable(Movable, HasMultiContainer): """ @@ -126,7 +159,7 @@ def __init__(self, compute_v, *args, **kwargs): self.conainter_ids = self.container.container_list @property - def current_speed(self): + def v(self): sum_level = 0 sum_capacity = 0 for id_ in self.container.container_list: @@ -134,3 +167,30 @@ def current_speed(self): sum_capacity = self.container.get_capacity(id_) fill_degree = sum_level / sum_capacity return self.compute_v(fill_degree) + + @property + def currentspeed(self): + warnings.warn( + "The property `.currentspeed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) + return self.v + + +class CanSailOnGraph(Routable, Movable): + """Mixin class: Allows to move over nodes on a graph""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # call functions when passing edges + self.on_pass_edge_functions = [] + assert hasattr(self.env, "FG"), "expected graph FG to be available on env" + + def pass_edge(self, origin: str, destination: str): + """Pass an edge. The node pair origin destination should be available on the env.FG graph.""" + edge = self.env.FG.edges[origin, destination] + # get origin and destination geometry + orig = nx.get_node_attributes(self.env.FG, "geometry")[origin] + dest = nx.get_node_attributes(self.env.FG, "geometry")[destination] + for on_pass_edge_function in self.on_pass_edge_functions: + on_pass_edge_function(origin, destination) From a42d4a3bffd44558684bff0b576c8012a4fc33f7 Mon Sep 17 00:00:00 2001 From: Mark van Koningsveld Date: Tue, 10 Jan 2023 14:21:13 +0100 Subject: [PATCH 002/100] Example with a depth varying path --- ...penclsim_opentnsim_with_longer_graph.ipynb | 2497 +++++++++++++++++ 1 file changed, 2497 insertions(+) create mode 100644 notebooks/32_openclsim_opentnsim_with_longer_graph.ipynb diff --git a/notebooks/32_openclsim_opentnsim_with_longer_graph.ipynb b/notebooks/32_openclsim_opentnsim_with_longer_graph.ipynb new file mode 100644 index 00000000..ce9f7e48 --- /dev/null +++ b/notebooks/32_openclsim_opentnsim_with_longer_graph.ipynb @@ -0,0 +1,2497 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Demo: repeating a subcycle until a stop condition is triggered with energy and route\n", + "The basic steps to set up an OpenCLSim simulation are:\n", + "* Import libraries\n", + "* Initialise simpy environment\n", + "* Define object classes\n", + "* Create objects\n", + " * Create sites\n", + " * Create vessels\n", + " * Create activities\n", + "* Register processes and run simpy\n", + "\n", + "----\n", + "\n", + "This notebook provides an example of a simulation that takes a number of sub processes, grouped in a sequential activity, that is **executed while a stop condition is not yet met**.\n", + "\n", + "For this example we work with the following sub processes:\n", + "* sailing empty\n", + "* loading\n", + "* sailing full\n", + "* unloading" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import datetime, time\n", + "import logging\n", + "\n", + "import simpy\n", + "import pandas as pd\n", + "import shapely\n", + "import networkx as nx\n", + "\n", + "import openclsim\n", + "import opentnsim\n", + "\n", + "# Used for making the graph to visualize our problem\n", + "import matplotlib.pyplot as plt\n", + "\n", + "logger = logging.basicConfig(level=logging.INFO)\n", + "logging.root.setLevel(level=logging.INFO)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1. Initialise simpy environment" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.1 Create graph" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "graph = nx.Graph()\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# specify a number of coordinate along your route (coords are: lon, lat)\n", + "coords = [\n", + "[4.651810765193616,53.06520633542454],\n", + "[4.665949515416939,53.06291148049787], \n", + "[4.678223920527591,53.06107438344198], \n", + "[4.688183738253528,53.05974704102928], \n", + "[4.69785320390846 ,53.05828289064841], \n", + "[4.704381491443237,53.05728100125996], \n", + "[4.709772259231658,53.05656711326854]] \n", + "\n", + "# for each edge (between above coordinates) specify the depth (m)\n", + "depths = [20, 18, 16, 14, 11, 8]\n", + "\n", + "# check of nr of coords and nr of depths align\n", + "assert len(coords) == len(depths) + 1, 'nr of depths does not correspond to nr of coords'" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# create a graph based on coords and depths\n", + "nodes = []\n", + "path = []\n", + "positions = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# add nodes\n", + "for index, coord in enumerate(coords):\n", + " node = shapely.geometry.Point(coord[0], coord[1])\n", + " name = \"Node \" + str(index)\n", + " \n", + " positions[node] = (node.x, node.y)\n", + " nodes.append(node)\n", + "\n", + " my_env.graph.add_node(node, **{\"name\": name,\n", + " \"geometry\": node})" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# add edges\n", + "path = [[nodes[i], nodes[i+1]] for i in range(len(nodes)-1)]\n", + "\n", + "for index, edge in enumerate(path):\n", + " # For the energy consumption calculation we add info to the graph. We need depth info for resistance.\n", + " # NB: the CalculateEnergy routine expects the graph to have \"Info\" that contains \"GeneralDepth\" \n", + " # this may not be very generic!\n", + " my_env.graph.add_edge(edge[0], edge[1], weight = 1, Info = {\"GeneralDepth\": depths[index]})\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "my_env.graph = my_env.graph.to_undirected() \n", + "my_env.graph = my_env.graph.to_directed() " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# show graph\n", + "nx.draw(my_env.graph, positions)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "POINT (4.651810765193616 53.06520633542454), POINT (4.665949515416939 53.06291148049787): general depth 20 m\n", + "POINT (4.665949515416939 53.06291148049787), POINT (4.651810765193616 53.06520633542454): general depth 20 m\n", + "POINT (4.665949515416939 53.06291148049787), POINT (4.678223920527591 53.06107438344198): general depth 18 m\n", + "POINT (4.678223920527591 53.06107438344198), POINT (4.665949515416939 53.06291148049787): general depth 18 m\n", + "POINT (4.678223920527591 53.06107438344198), POINT (4.688183738253528 53.05974704102928): general depth 16 m\n", + "POINT (4.688183738253528 53.05974704102928), POINT (4.678223920527591 53.06107438344198): general depth 16 m\n", + "POINT (4.688183738253528 53.05974704102928), POINT (4.69785320390846 53.05828289064841): general depth 14 m\n", + "POINT (4.69785320390846 53.05828289064841), POINT (4.688183738253528 53.05974704102928): general depth 14 m\n", + "POINT (4.69785320390846 53.05828289064841), POINT (4.704381491443237 53.05728100125996): general depth 11 m\n", + "POINT (4.704381491443237 53.05728100125996), POINT (4.69785320390846 53.05828289064841): general depth 11 m\n", + "POINT (4.704381491443237 53.05728100125996), POINT (4.709772259231658 53.05656711326854): general depth 8 m\n", + "POINT (4.709772259231658 53.05656711326854), POINT (4.704381491443237 53.05728100125996): general depth 8 m\n" + ] + } + ], + "source": [ + "# inspect if properties were set correctly\n", + "for edge in my_env.graph.edges(data = True):\n", + " print('{}, {}: general depth {} m'.format(edge[0], edge[1], graph.edges[(edge[0], edge[1])]['Info']['GeneralDepth']))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable, # add opentnsim Movable to allow sailing on graph\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3. Create objects\n", + "##### 3.1. Create site object(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for from_site\n", + "location_from_site = list(my_env.graph.nodes)[0]\n", + "data_from_site = {\"env\": my_env,\n", + " \"name\": \"from_site\",\n", + " \"geometry\": location_from_site,\n", + " \"capacity\": 100,\n", + " \"level\": 50\n", + " }\n", + "# instantiate from_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# prepare input data for to_site\n", + "location_to_site = list(my_env.graph.nodes)[-1]\n", + "data_to_site = {\"env\": my_env,\n", + " \"name\": \"to_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 50,\n", + " \"level\": 0\n", + " }\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 3.2. Create vessel object(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# # prepare input data for vessel_01\n", + "# data_vessel01 = {\"env\": my_env,\n", + "# \"name\": \"vessel01\",\n", + "# \"capacity\": 5,\n", + "# \"v\": 10,\n", + "# \"geometry\": location_from_site, \n", + "# # \"loading_rate\": 0.00001,\n", + "# # \"unloading_rate\": 0.00001,\n", + "# # \"capacity\": 4,\n", + "# # \"compute_v\": lambda x: 10,\n", + "# # TODO: confirm these numbers\n", + "# # 'v': 3.5,\n", + "# # 'P_installed': 2200, \n", + "# # 'L_w': 15, \n", + "# # 'C_b': 0.85, \n", + "# # 'current_year': 2022, \n", + "# # 'c_year': 1990,\n", + "# # 'type': 'a',\n", + "# # 'B': 11,\n", + "# # 'L': 135,\n", + "# # 'T': 2.5,\n", + "# 'route': [location_from_site, location_to_site]\n", + "\n", + " \n", + "# }\n", + "# # instantiate vessel_01 \n", + "# vessel01 = TransportProcessingResource(**data_vessel01)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"vessel01\",\n", + " \"geometry\": location_from_site, \n", + " \"capacity\": 5,\n", + " \"v\": 10,\n", + " \"route\": nx.dijkstra_path(my_env.graph, location_from_site, location_to_site)\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'v': 10,\n", + " 'metadata': {},\n", + " 'env': ,\n", + " 'container': ,\n", + " 'resource': ,\n", + " 'log': {'Message': [], 'Timestamp': [], 'Value': [], 'Geometry': []},\n", + " 'name': 'vessel01',\n", + " 'id': '1965273c-284c-46cf-af31-5d2442ad22bc',\n", + " 'route': [,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ],\n", + " 'complete_path': None,\n", + " 'geometry': ,\n", + " 'node': None,\n", + " 'wgs84': Geod(ellps='WGS84'),\n", + " 'on_pass_edge_functions': []}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vessel01.__dict__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 3.3 Create activity/activities" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# activity = openclsim.model.MoveActivity(\n", + "# env=my_env,\n", + "# name=\"Move activity\",\n", + "# registry=registry,\n", + "# mover=vessel01,\n", + "# destination=location_to_site,\n", + "# )" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# create a list of the sub processes\n", + "sub_processes = [\n", + " openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=location_from_site,\n", + " ),\n", + " openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=location_to_site,\n", + " )\n", + "]\n", + "\n", + "# create a 'sequential activity' that is made up of the 'sub_processes'\n", + "sequential_activity = openclsim.model.SequentialActivity(\n", + " env=my_env,\n", + " name=\"sequential_activity_subcycle\",\n", + " registry=registry,\n", + " sub_processes=sub_processes,\n", + ")\n", + "\n", + "# # create a while activity that executes the 'sequential activity' while the stop condition is not triggered \n", + "# while_activity = model.WhileActivity(\n", + "# env=my_env,\n", + "# name=\"while_sequential_activity_subcycle\",\n", + "# registry=registry,\n", + "# sub_processes=[sequential_activity],\n", + "# condition_event=[{\"type\": \"container\", \"concept\": to_site, \"state\": \"full\"}],\n", + "# )\n", + "\n", + "activity = openclsim.model.RepeatActivity(\n", + " env=my_env,\n", + " name=\"repeatit\",\n", + " registry=registry,\n", + " sub_processes=[sequential_activity],\n", + " repetitions=2\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4. Register processes and run simpy" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# initate the simpy processes defined in the 'while activity' and run simpy\n", + "openclsim.model.register_processes([activity])\n", + "my_env.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5. Inspect results\n", + "##### 5.1 Inspect logs" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatetyperef
0sequential_activity_subcycle1970-01-01 00:00:00.000000STARTNaNNaN
1sequential_activity_subcycle1970-01-01 00:00:00.000000STARTsubprocessccdd4648-8317-40cd-8445-e3c338a8563e
2sequential_activity_subcycle1970-01-01 00:06:40.364047STOPsubprocessccdd4648-8317-40cd-8445-e3c338a8563e
3sequential_activity_subcycle1970-01-01 00:06:40.364047STARTsubprocess3079c380-365e-4b84-a930-8ebeda78833e
4sequential_activity_subcycle1970-01-01 00:20:01.034956STOPsubprocess3079c380-365e-4b84-a930-8ebeda78833e
5sequential_activity_subcycle1970-01-01 00:20:01.034956STOPNaNNaN
6sequential_activity_subcycle1970-01-01 00:20:01.034956STARTNaNNaN
7sequential_activity_subcycle1970-01-01 00:20:01.034956STARTsubprocessccdd4648-8317-40cd-8445-e3c338a8563e
8sequential_activity_subcycle1970-01-01 00:33:21.705864STOPsubprocessccdd4648-8317-40cd-8445-e3c338a8563e
9sequential_activity_subcycle1970-01-01 00:33:21.705864STARTsubprocess3079c380-365e-4b84-a930-8ebeda78833e
10sequential_activity_subcycle1970-01-01 00:46:42.376773STOPsubprocess3079c380-365e-4b84-a930-8ebeda78833e
11sequential_activity_subcycle1970-01-01 00:46:42.376773STOPNaNNaN
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sequential_activity_subcycle 1970-01-01 00:00:00.000000 START \n", + "1 sequential_activity_subcycle 1970-01-01 00:00:00.000000 START \n", + "2 sequential_activity_subcycle 1970-01-01 00:06:40.364047 STOP \n", + "3 sequential_activity_subcycle 1970-01-01 00:06:40.364047 START \n", + "4 sequential_activity_subcycle 1970-01-01 00:20:01.034956 STOP \n", + "5 sequential_activity_subcycle 1970-01-01 00:20:01.034956 STOP \n", + "6 sequential_activity_subcycle 1970-01-01 00:20:01.034956 START \n", + "7 sequential_activity_subcycle 1970-01-01 00:20:01.034956 START \n", + "8 sequential_activity_subcycle 1970-01-01 00:33:21.705864 STOP \n", + "9 sequential_activity_subcycle 1970-01-01 00:33:21.705864 START \n", + "10 sequential_activity_subcycle 1970-01-01 00:46:42.376773 STOP \n", + "11 sequential_activity_subcycle 1970-01-01 00:46:42.376773 STOP \n", + "\n", + " type ref \n", + "0 NaN NaN \n", + "1 subprocess ccdd4648-8317-40cd-8445-e3c338a8563e \n", + "2 subprocess ccdd4648-8317-40cd-8445-e3c338a8563e \n", + "3 subprocess 3079c380-365e-4b84-a930-8ebeda78833e \n", + "4 subprocess 3079c380-365e-4b84-a930-8ebeda78833e \n", + "5 NaN NaN \n", + "6 NaN NaN \n", + "7 subprocess ccdd4648-8317-40cd-8445-e3c338a8563e \n", + "8 subprocess ccdd4648-8317-40cd-8445-e3c338a8563e \n", + "9 subprocess 3079c380-365e-4b84-a930-8ebeda78833e \n", + "10 subprocess 3079c380-365e-4b84-a930-8ebeda78833e \n", + "11 NaN NaN " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "openclsim.plot.get_log_dataframe(sequential_activity, [activity, *sub_processes])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityState
0sailing empty1970-01-01 00:00:00.000000START
1sailing empty1970-01-01 00:06:40.364047STOP
2sailing empty1970-01-01 00:20:01.034956START
3sailing empty1970-01-01 00:33:21.705864STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState\n", + "0 sailing empty 1970-01-01 00:00:00.000000 START\n", + "1 sailing empty 1970-01-01 00:06:40.364047 STOP\n", + "2 sailing empty 1970-01-01 00:20:01.034956 START\n", + "3 sailing empty 1970-01-01 00:33:21.705864 STOP" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "openclsim.plot.get_log_dataframe(sub_processes[0], [sequential_activity, activity])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### 5.2 Visualise gantt charts" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(178,50,119)", + "width": 10 + }, + "mode": "lines", + "name": "repeatit", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773" + ], + "y": [ + "repeatit", + "repeatit", + "repeatit", + "repeatit", + null, + "repeatit", + "repeatit", + "repeatit", + "repeatit", + null, + "repeatit", + "repeatit", + "repeatit", + "repeatit", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(242,114,183)", + "width": 10 + }, + "mode": "lines", + "name": "sequential_activity_subcycle", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773" + ], + "y": [ + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + null, + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + null, + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + null, + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + null, + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + null, + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + "sequential_activity_subcycle", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(50,178,247)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864" + ], + "y": [ + "sailing empty", + "sailing empty", + "sailing empty", + "sailing empty", + null, + "sailing empty", + "sailing empty", + "sailing empty", + "sailing empty", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(114,242,55)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full", + "type": "scatter", + "x": [ + "1970-01-01T00:06:40.364047", + "1970-01-01T00:06:40.364047", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:20:01.034956", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:33:21.705864", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773", + "1970-01-01T00:46:42.376773" + ], + "y": [ + "sailing full", + "sailing full", + "sailing full", + "sailing full", + null, + "sailing full", + "sailing full", + "sailing full", + "sailing full", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T00:46:42.376773" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "openclsim.plot.get_gantt_chart([activity, sequential_activity, *sub_processes])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sandbox" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MessageTimestampValueGeometry
0Sailing from node POINT (4.651810765193616 53....1970-01-01 01:00:00.0000000.000000POINT (4.651810765193616 53.06520633542454)
1Sailing from node POINT (4.651810765193616 53....1970-01-01 01:01:38.1634770.000000POINT (4.665949515416939 53.06291148049787)
2Sailing from node POINT (4.665949515416939 53....1970-01-01 01:01:38.1634770.000000POINT (4.665949515416939 53.06291148049787)
3Sailing from node POINT (4.665949515416939 53....1970-01-01 01:03:02.9540350.000000POINT (4.678223920527591 53.06107438344198)
4Sailing from node POINT (4.678223920527591 53....1970-01-01 01:03:02.9540350.000000POINT (4.678223920527591 53.06107438344198)
5Sailing from node POINT (4.678223920527591 53....1970-01-01 01:04:11.3424840.000000POINT (4.688183738253528 53.05974704102928)
6Sailing from node POINT (4.688183738253528 53....1970-01-01 01:04:11.3424840.000000POINT (4.688183738253528 53.05974704102928)
7Sailing from node POINT (4.688183738253528 53....1970-01-01 01:05:18.1883570.000000POINT (4.69785320390846 53.05828289064841)
8Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:05:18.1883570.000000POINT (4.69785320390846 53.05828289064841)
9Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:06:03.3567140.000000POINT (4.704381491443237 53.05728100125996)
10Sailing from node POINT (4.704381491443237 53....1970-01-01 01:06:03.3567140.000000POINT (4.704381491443237 53.05728100125996)
11Sailing from node POINT (4.704381491443237 53....1970-01-01 01:06:40.3640470.000000POINT (4.709772259231658 53.05656711326854)
12Sailing to start1970-01-01 01:13:20.6709084003.068613POINT (4.651810765193616 53.06520633542454)
13Sailing from node POINT (4.651810765193616 53....1970-01-01 01:13:20.6709080.000000POINT (4.651810765193616 53.06520633542454)
14Sailing from node POINT (4.651810765193616 53....1970-01-01 01:14:58.8343860.000000POINT (4.665949515416939 53.06291148049787)
15Sailing from node POINT (4.665949515416939 53....1970-01-01 01:14:58.8343860.000000POINT (4.665949515416939 53.06291148049787)
16Sailing from node POINT (4.665949515416939 53....1970-01-01 01:16:23.6249440.000000POINT (4.678223920527591 53.06107438344198)
17Sailing from node POINT (4.678223920527591 53....1970-01-01 01:16:23.6249440.000000POINT (4.678223920527591 53.06107438344198)
18Sailing from node POINT (4.678223920527591 53....1970-01-01 01:17:32.0133920.000000POINT (4.688183738253528 53.05974704102928)
19Sailing from node POINT (4.688183738253528 53....1970-01-01 01:17:32.0133920.000000POINT (4.688183738253528 53.05974704102928)
20Sailing from node POINT (4.688183738253528 53....1970-01-01 01:18:38.8592650.000000POINT (4.69785320390846 53.05828289064841)
21Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:18:38.8592650.000000POINT (4.69785320390846 53.05828289064841)
22Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:19:24.0276220.000000POINT (4.704381491443237 53.05728100125996)
23Sailing from node POINT (4.704381491443237 53....1970-01-01 01:19:24.0276220.000000POINT (4.704381491443237 53.05728100125996)
24Sailing from node POINT (4.704381491443237 53....1970-01-01 01:20:01.0349560.000000POINT (4.709772259231658 53.05656711326854)
25Sailing to start1970-01-01 01:26:41.3418174003.068613POINT (4.651810765193616 53.06520633542454)
26Sailing from node POINT (4.651810765193616 53....1970-01-01 01:26:41.3418170.000000POINT (4.651810765193616 53.06520633542454)
27Sailing from node POINT (4.651810765193616 53....1970-01-01 01:28:19.5052940.000000POINT (4.665949515416939 53.06291148049787)
28Sailing from node POINT (4.665949515416939 53....1970-01-01 01:28:19.5052940.000000POINT (4.665949515416939 53.06291148049787)
29Sailing from node POINT (4.665949515416939 53....1970-01-01 01:29:44.2958520.000000POINT (4.678223920527591 53.06107438344198)
30Sailing from node POINT (4.678223920527591 53....1970-01-01 01:29:44.2958520.000000POINT (4.678223920527591 53.06107438344198)
31Sailing from node POINT (4.678223920527591 53....1970-01-01 01:30:52.6843010.000000POINT (4.688183738253528 53.05974704102928)
32Sailing from node POINT (4.688183738253528 53....1970-01-01 01:30:52.6843010.000000POINT (4.688183738253528 53.05974704102928)
33Sailing from node POINT (4.688183738253528 53....1970-01-01 01:31:59.5301740.000000POINT (4.69785320390846 53.05828289064841)
34Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:31:59.5301740.000000POINT (4.69785320390846 53.05828289064841)
35Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:32:44.6985310.000000POINT (4.704381491443237 53.05728100125996)
36Sailing from node POINT (4.704381491443237 53....1970-01-01 01:32:44.6985310.000000POINT (4.704381491443237 53.05728100125996)
37Sailing from node POINT (4.704381491443237 53....1970-01-01 01:33:21.7058640.000000POINT (4.709772259231658 53.05656711326854)
38Sailing to start1970-01-01 01:40:02.0127254003.068613POINT (4.651810765193616 53.06520633542454)
39Sailing from node POINT (4.651810765193616 53....1970-01-01 01:40:02.0127250.000000POINT (4.651810765193616 53.06520633542454)
40Sailing from node POINT (4.651810765193616 53....1970-01-01 01:41:40.1762020.000000POINT (4.665949515416939 53.06291148049787)
41Sailing from node POINT (4.665949515416939 53....1970-01-01 01:41:40.1762020.000000POINT (4.665949515416939 53.06291148049787)
42Sailing from node POINT (4.665949515416939 53....1970-01-01 01:43:04.9667600.000000POINT (4.678223920527591 53.06107438344198)
43Sailing from node POINT (4.678223920527591 53....1970-01-01 01:43:04.9667600.000000POINT (4.678223920527591 53.06107438344198)
44Sailing from node POINT (4.678223920527591 53....1970-01-01 01:44:13.3552090.000000POINT (4.688183738253528 53.05974704102928)
45Sailing from node POINT (4.688183738253528 53....1970-01-01 01:44:13.3552090.000000POINT (4.688183738253528 53.05974704102928)
46Sailing from node POINT (4.688183738253528 53....1970-01-01 01:45:20.2010820.000000POINT (4.69785320390846 53.05828289064841)
47Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:45:20.2010820.000000POINT (4.69785320390846 53.05828289064841)
48Sailing from node POINT (4.69785320390846 53.0...1970-01-01 01:46:05.3694390.000000POINT (4.704381491443237 53.05728100125996)
49Sailing from node POINT (4.704381491443237 53....1970-01-01 01:46:05.3694390.000000POINT (4.704381491443237 53.05728100125996)
50Sailing from node POINT (4.704381491443237 53....1970-01-01 01:46:42.3767730.000000POINT (4.709772259231658 53.05656711326854)
\n", + "
" + ], + "text/plain": [ + " Message \\\n", + "0 Sailing from node POINT (4.651810765193616 53.... \n", + "1 Sailing from node POINT (4.651810765193616 53.... \n", + "2 Sailing from node POINT (4.665949515416939 53.... \n", + "3 Sailing from node POINT (4.665949515416939 53.... \n", + "4 Sailing from node POINT (4.678223920527591 53.... \n", + "5 Sailing from node POINT (4.678223920527591 53.... \n", + "6 Sailing from node POINT (4.688183738253528 53.... \n", + "7 Sailing from node POINT (4.688183738253528 53.... \n", + "8 Sailing from node POINT (4.69785320390846 53.0... \n", + "9 Sailing from node POINT (4.69785320390846 53.0... \n", + "10 Sailing from node POINT (4.704381491443237 53.... \n", + "11 Sailing from node POINT (4.704381491443237 53.... \n", + "12 Sailing to start \n", + "13 Sailing from node POINT (4.651810765193616 53.... \n", + "14 Sailing from node POINT (4.651810765193616 53.... \n", + "15 Sailing from node POINT (4.665949515416939 53.... \n", + "16 Sailing from node POINT (4.665949515416939 53.... \n", + "17 Sailing from node POINT (4.678223920527591 53.... \n", + "18 Sailing from node POINT (4.678223920527591 53.... \n", + "19 Sailing from node POINT (4.688183738253528 53.... \n", + "20 Sailing from node POINT (4.688183738253528 53.... \n", + "21 Sailing from node POINT (4.69785320390846 53.0... \n", + "22 Sailing from node POINT (4.69785320390846 53.0... \n", + "23 Sailing from node POINT (4.704381491443237 53.... \n", + "24 Sailing from node POINT (4.704381491443237 53.... \n", + "25 Sailing to start \n", + "26 Sailing from node POINT (4.651810765193616 53.... \n", + "27 Sailing from node POINT (4.651810765193616 53.... \n", + "28 Sailing from node POINT (4.665949515416939 53.... \n", + "29 Sailing from node POINT (4.665949515416939 53.... \n", + "30 Sailing from node POINT (4.678223920527591 53.... \n", + "31 Sailing from node POINT (4.678223920527591 53.... \n", + "32 Sailing from node POINT (4.688183738253528 53.... \n", + "33 Sailing from node POINT (4.688183738253528 53.... \n", + "34 Sailing from node POINT (4.69785320390846 53.0... \n", + "35 Sailing from node POINT (4.69785320390846 53.0... \n", + "36 Sailing from node POINT (4.704381491443237 53.... \n", + "37 Sailing from node POINT (4.704381491443237 53.... \n", + "38 Sailing to start \n", + "39 Sailing from node POINT (4.651810765193616 53.... \n", + "40 Sailing from node POINT (4.651810765193616 53.... \n", + "41 Sailing from node POINT (4.665949515416939 53.... \n", + "42 Sailing from node POINT (4.665949515416939 53.... \n", + "43 Sailing from node POINT (4.678223920527591 53.... \n", + "44 Sailing from node POINT (4.678223920527591 53.... \n", + "45 Sailing from node POINT (4.688183738253528 53.... \n", + "46 Sailing from node POINT (4.688183738253528 53.... \n", + "47 Sailing from node POINT (4.69785320390846 53.0... \n", + "48 Sailing from node POINT (4.69785320390846 53.0... \n", + "49 Sailing from node POINT (4.704381491443237 53.... \n", + "50 Sailing from node POINT (4.704381491443237 53.... \n", + "\n", + " Timestamp Value \\\n", + "0 1970-01-01 01:00:00.000000 0.000000 \n", + "1 1970-01-01 01:01:38.163477 0.000000 \n", + "2 1970-01-01 01:01:38.163477 0.000000 \n", + "3 1970-01-01 01:03:02.954035 0.000000 \n", + "4 1970-01-01 01:03:02.954035 0.000000 \n", + "5 1970-01-01 01:04:11.342484 0.000000 \n", + "6 1970-01-01 01:04:11.342484 0.000000 \n", + "7 1970-01-01 01:05:18.188357 0.000000 \n", + "8 1970-01-01 01:05:18.188357 0.000000 \n", + "9 1970-01-01 01:06:03.356714 0.000000 \n", + "10 1970-01-01 01:06:03.356714 0.000000 \n", + "11 1970-01-01 01:06:40.364047 0.000000 \n", + "12 1970-01-01 01:13:20.670908 4003.068613 \n", + "13 1970-01-01 01:13:20.670908 0.000000 \n", + "14 1970-01-01 01:14:58.834386 0.000000 \n", + "15 1970-01-01 01:14:58.834386 0.000000 \n", + "16 1970-01-01 01:16:23.624944 0.000000 \n", + "17 1970-01-01 01:16:23.624944 0.000000 \n", + "18 1970-01-01 01:17:32.013392 0.000000 \n", + "19 1970-01-01 01:17:32.013392 0.000000 \n", + "20 1970-01-01 01:18:38.859265 0.000000 \n", + "21 1970-01-01 01:18:38.859265 0.000000 \n", + "22 1970-01-01 01:19:24.027622 0.000000 \n", + "23 1970-01-01 01:19:24.027622 0.000000 \n", + "24 1970-01-01 01:20:01.034956 0.000000 \n", + "25 1970-01-01 01:26:41.341817 4003.068613 \n", + "26 1970-01-01 01:26:41.341817 0.000000 \n", + "27 1970-01-01 01:28:19.505294 0.000000 \n", + "28 1970-01-01 01:28:19.505294 0.000000 \n", + "29 1970-01-01 01:29:44.295852 0.000000 \n", + "30 1970-01-01 01:29:44.295852 0.000000 \n", + "31 1970-01-01 01:30:52.684301 0.000000 \n", + "32 1970-01-01 01:30:52.684301 0.000000 \n", + "33 1970-01-01 01:31:59.530174 0.000000 \n", + "34 1970-01-01 01:31:59.530174 0.000000 \n", + "35 1970-01-01 01:32:44.698531 0.000000 \n", + "36 1970-01-01 01:32:44.698531 0.000000 \n", + "37 1970-01-01 01:33:21.705864 0.000000 \n", + "38 1970-01-01 01:40:02.012725 4003.068613 \n", + "39 1970-01-01 01:40:02.012725 0.000000 \n", + "40 1970-01-01 01:41:40.176202 0.000000 \n", + "41 1970-01-01 01:41:40.176202 0.000000 \n", + "42 1970-01-01 01:43:04.966760 0.000000 \n", + "43 1970-01-01 01:43:04.966760 0.000000 \n", + "44 1970-01-01 01:44:13.355209 0.000000 \n", + "45 1970-01-01 01:44:13.355209 0.000000 \n", + "46 1970-01-01 01:45:20.201082 0.000000 \n", + "47 1970-01-01 01:45:20.201082 0.000000 \n", + "48 1970-01-01 01:46:05.369439 0.000000 \n", + "49 1970-01-01 01:46:05.369439 0.000000 \n", + "50 1970-01-01 01:46:42.376773 0.000000 \n", + "\n", + " Geometry \n", + "0 POINT (4.651810765193616 53.06520633542454) \n", + "1 POINT (4.665949515416939 53.06291148049787) \n", + "2 POINT (4.665949515416939 53.06291148049787) \n", + "3 POINT (4.678223920527591 53.06107438344198) \n", + "4 POINT (4.678223920527591 53.06107438344198) \n", + "5 POINT (4.688183738253528 53.05974704102928) \n", + "6 POINT (4.688183738253528 53.05974704102928) \n", + "7 POINT (4.69785320390846 53.05828289064841) \n", + "8 POINT (4.69785320390846 53.05828289064841) \n", + "9 POINT (4.704381491443237 53.05728100125996) \n", + "10 POINT (4.704381491443237 53.05728100125996) \n", + "11 POINT (4.709772259231658 53.05656711326854) \n", + "12 POINT (4.651810765193616 53.06520633542454) \n", + "13 POINT (4.651810765193616 53.06520633542454) \n", + "14 POINT (4.665949515416939 53.06291148049787) \n", + "15 POINT (4.665949515416939 53.06291148049787) \n", + "16 POINT (4.678223920527591 53.06107438344198) \n", + "17 POINT (4.678223920527591 53.06107438344198) \n", + "18 POINT (4.688183738253528 53.05974704102928) \n", + "19 POINT (4.688183738253528 53.05974704102928) \n", + "20 POINT (4.69785320390846 53.05828289064841) \n", + "21 POINT (4.69785320390846 53.05828289064841) \n", + "22 POINT (4.704381491443237 53.05728100125996) \n", + "23 POINT (4.704381491443237 53.05728100125996) \n", + "24 POINT (4.709772259231658 53.05656711326854) \n", + "25 POINT (4.651810765193616 53.06520633542454) \n", + "26 POINT (4.651810765193616 53.06520633542454) \n", + "27 POINT (4.665949515416939 53.06291148049787) \n", + "28 POINT (4.665949515416939 53.06291148049787) \n", + "29 POINT (4.678223920527591 53.06107438344198) \n", + "30 POINT (4.678223920527591 53.06107438344198) \n", + "31 POINT (4.688183738253528 53.05974704102928) \n", + "32 POINT (4.688183738253528 53.05974704102928) \n", + "33 POINT (4.69785320390846 53.05828289064841) \n", + "34 POINT (4.69785320390846 53.05828289064841) \n", + "35 POINT (4.704381491443237 53.05728100125996) \n", + "36 POINT (4.704381491443237 53.05728100125996) \n", + "37 POINT (4.709772259231658 53.05656711326854) \n", + "38 POINT (4.651810765193616 53.06520633542454) \n", + "39 POINT (4.651810765193616 53.06520633542454) \n", + "40 POINT (4.665949515416939 53.06291148049787) \n", + "41 POINT (4.665949515416939 53.06291148049787) \n", + "42 POINT (4.678223920527591 53.06107438344198) \n", + "43 POINT (4.678223920527591 53.06107438344198) \n", + "44 POINT (4.688183738253528 53.05974704102928) \n", + "45 POINT (4.688183738253528 53.05974704102928) \n", + "46 POINT (4.69785320390846 53.05828289064841) \n", + "47 POINT (4.69785320390846 53.05828289064841) \n", + "48 POINT (4.704381491443237 53.05728100125996) \n", + "49 POINT (4.704381491443237 53.05728100125996) \n", + "50 POINT (4.709772259231658 53.05656711326854) " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.DataFrame.from_dict(vessel01.log)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 8cbbc00e100b130842d85f98a04de8c0d25bad69 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 10:18:14 +0100 Subject: [PATCH 003/100] add networkx module --- setup.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 6ca62d77..2326a9ff 100644 --- a/setup.cfg +++ b/setup.cfg @@ -33,9 +33,9 @@ install_requires = simpy shapely pyproj - nose plotly matplotlib + networkx [options.packages.find] where = src @@ -50,6 +50,7 @@ exclude = # Add here test requirements (semicolon/line-separated) testing = coverage-badge + nose faker lxml mock From 0cd9a7922ffc18887921b27d1f1094aec991005f Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 10:36:43 +0100 Subject: [PATCH 004/100] flake8 --- src/openclsim/core/movable.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 82cfdc8c..8075a2c0 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -3,7 +3,6 @@ import warnings import shapely.geometry -import networkx as nx from .container import HasContainer, HasMultiContainer from .locatable import Locatable @@ -187,10 +186,13 @@ def __init__(self, *args, **kwargs): assert hasattr(self.env, "FG"), "expected graph FG to be available on env" def pass_edge(self, origin: str, destination: str): - """Pass an edge. The node pair origin destination should be available on the env.FG graph.""" - edge = self.env.FG.edges[origin, destination] + """Pass an edge. The node pair origin destination should be available on the env.graph.""" + edge = self.env.graph.edges[origin, destination] # get origin and destination geometry - orig = nx.get_node_attributes(self.env.FG, "geometry")[origin] - dest = nx.get_node_attributes(self.env.FG, "geometry")[destination] + origin_geometry = self.env.graph.nodes[origin]["geometry"] + destination_geometry = self.env.graph.nodes[destination]["geometry"] + edge_geometry = edge["geometry"] + print("check if we need to reorder", edge_geometry, origin_geometry, destination_geometry) + for on_pass_edge_function in self.on_pass_edge_functions: on_pass_edge_function(origin, destination) From e013f9862b07498b186fb6a0654ce773597189c9 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 10:38:58 +0100 Subject: [PATCH 005/100] fix typo in attribute name, flake8 --- src/openclsim/core/movable.py | 9 +++++++-- tests/test_basic_functions.py | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 8075a2c0..0f4aea74 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -84,7 +84,7 @@ def v(self): return self._v @property - def currentspeed(self): + def current_speed(self): warnings.warn( "The property `.currentspeed` is deprected. Use `.v` instead.", DeprecationWarning, @@ -192,7 +192,12 @@ def pass_edge(self, origin: str, destination: str): origin_geometry = self.env.graph.nodes[origin]["geometry"] destination_geometry = self.env.graph.nodes[destination]["geometry"] edge_geometry = edge["geometry"] - print("check if we need to reorder", edge_geometry, origin_geometry, destination_geometry) + print( + "check if we need to reorder", + edge_geometry, + origin_geometry, + destination_geometry, + ) for on_pass_edge_function in self.on_pass_edge_functions: on_pass_edge_function(origin, destination) diff --git a/tests/test_basic_functions.py b/tests/test_basic_functions.py index d3eb964c..527db986 100644 --- a/tests/test_basic_functions.py +++ b/tests/test_basic_functions.py @@ -94,7 +94,7 @@ def move_and_test(env, destination, movable, expected_speed, expected_time): start = env.now env.process(movable.move(destination)) env.run() - np.testing.assert_almost_equal(movable.current_speed, expected_speed) + np.testing.assert_almost_equal(movable.v, expected_speed) assert movable.geometry.equals(destination.geometry) hours_spent = (env.now - start) / 3600 np.testing.assert_almost_equal(hours_spent, expected_time, decimal=2) From 5acce428b091a39d016ed5da0b0a77e8805dd7c8 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 11:40:27 +0100 Subject: [PATCH 006/100] implement separation between moving over geometries and moving over note based routes --- src/openclsim/core/movable.py | 74 ++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 0f4aea74..4a0aa9dc 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -1,14 +1,28 @@ """Component to move the simulation objects.""" import logging +from typing import List import warnings + import shapely.geometry +import pyproj from .container import HasContainer, HasMultiContainer from .locatable import Locatable from .log import LogState from .simpy_object import SimpyObject +# can be removed if we switch to python>=3.10 +try: + from itertools import pairwise +except ImportError: + def pairwise(iterable): + # pairwise('ABCDEFG') --> AB BC CD DE EF FG + a, b = tee(iterable) + next(b, None) + return zip(a, b) + + logger = logging.getLogger(__name__) @@ -183,21 +197,51 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # call functions when passing edges self.on_pass_edge_functions = [] + self.wgs84 = pyproj.Geod(ellps="WGS84") assert hasattr(self.env, "FG"), "expected graph FG to be available on env" - def pass_edge(self, origin: str, destination: str): - """Pass an edge. The node pair origin destination should be available on the env.graph.""" - edge = self.env.graph.edges[origin, destination] - # get origin and destination geometry - origin_geometry = self.env.graph.nodes[origin]["geometry"] - destination_geometry = self.env.graph.nodes[destination]["geometry"] - edge_geometry = edge["geometry"] - print( - "check if we need to reorder", - edge_geometry, - origin_geometry, - destination_geometry, - ) + def move_to_geometry(self, geometry: shapely.geometry.Point): + """move to geometry""" + linestring = shapely.geometry.LineString([self.geometry, geometry]) + distance = self.wgs84.geometry_length(edge_geometry) + duration = self.v * distance + yield self.env.timeout(duration) + self.geometry = geometry - for on_pass_edge_function in self.on_pass_edge_functions: - on_pass_edge_function(origin, destination) + def pass_linestring(self, geometry): + """Pass an edge. The node pair origin destination should be available on the env.graph.""" + assert isinstance(geometry, shapely.geometry.LineString) + distance = self.wgs84.geometry_length(edge_geometry) + duration = self.v * distance + yield self.env.timeout(duration) + self.geometry = destination_geometry + + + @staticmethod + def order_geometry(geometry: shapely.geometry.LineString, a: shapely.geometry.Point): + """Make sure the linestring starts at a. If the end of the linestring is closer to a than the start, the linestring is inverted.""" + start = shapely.geometry.Point(*geometry.coords[0]) + end = shapely.geometry.Point(*geometry.coords[-1]) + _, _, distance_from_start = self.wgs84.inv(start.x, start.y, a.x, a.y) + _, _, distance_from_end = self.wgs84.inv(end.x, end.y, a.x, a.y) + if distance_from_start > distance_from_end: + coords = np.flipud(np.array(geometry.coords)) + else: + coords = geometry.coords + new_geometry = shapely.geometry.LineString(coords) + return new_geometry + + def move_over_route(self, route: List[str]): + """sail over the route, a list of nodes""" + a = route[0] + a_geometry = self.graph.nodes[a]['geometry'] + yield from self.move_to_geometry(a_geometry) + for i, (a, b) in enumerate(pairwise(route)): + a_geometry = self.graph[a]['geometry'] + b_geometry = self.graph[b]['geometry'] + edge_geometry = self.graph[(a, b)]['geometry'] + # make sure we are in the right order + edge_geometry = self.order_geometry(edge_geometry) + yield from self.pass_linestring(edge_geometry) + for pass_edge_function in self.pass_edge_function: + yield pass_edge_function(ship=self, a=a, b=b, route=route, geometry=geometry) From 9418763bbcbc48ded88d3a8ac1f27e6a92397576 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 13 Feb 2023 15:13:46 +0100 Subject: [PATCH 007/100] rename --- src/openclsim/core/movable.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 4a0aa9dc..b7bdd28e 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -100,7 +100,7 @@ def v(self): @property def current_speed(self): warnings.warn( - "The property `.currentspeed` is deprected. Use `.v` instead.", + "The property `.current_speed` is deprected. Use `.v` instead.", DeprecationWarning, ) return self.v @@ -142,9 +142,9 @@ def v(self): ) @property - def currentspeed(self): + def current_speed(self): warnings.warn( - "The property `.currentspeed` is deprected. Use `.v` instead.", + "The property `.current_speed` is deprected. Use `.v` instead.", DeprecationWarning, ) return self.v @@ -182,9 +182,9 @@ def v(self): return self.compute_v(fill_degree) @property - def currentspeed(self): + def current_speed(self): warnings.warn( - "The property `.currentspeed` is deprected. Use `.v` instead.", + "The property `.current_speed` is deprected. Use `.v` instead.", DeprecationWarning, ) return self.v From 987aadb9ccbe9471d33664f9846b333d77d61d8c Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 13 Feb 2023 16:08:52 +0100 Subject: [PATCH 008/100] missing dep --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 2326a9ff..cfb2b4e0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,6 +36,7 @@ install_requires = plotly matplotlib networkx + Deprecated [options.packages.find] where = src From e06e1b3fd6f8e64f79f29cf7927271f1fd9d5e02 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 17 Feb 2023 15:52:00 +0100 Subject: [PATCH 009/100] notebook for opentnsim + openclsim with opentnsim moving and openclsim for everything else --- notebooks/32_openclsim_opentnsim_moving.ipynb | 405 ++++++++++++++++++ 1 file changed, 405 insertions(+) create mode 100644 notebooks/32_openclsim_opentnsim_moving.ipynb diff --git a/notebooks/32_openclsim_opentnsim_moving.ipynb b/notebooks/32_openclsim_opentnsim_moving.ipynb new file mode 100644 index 00000000..b99ce262 --- /dev/null +++ b/notebooks/32_openclsim_opentnsim_moving.ipynb @@ -0,0 +1,405 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "014edd2c", + "metadata": {}, + "source": [ + "# Combining OpenCLSim and OpenTNSim\n", + "\n", + "This notebook shows how to combine elements from OpenCLSim and OpenTNSim. You need OpenTNSim>=1.3.0 and OpenCLSim>=1.6 for this notebook to work. Since that version the core components (locatable, identifiable, simpyobject) of opentnsim are referring to the versions from OpenCLSim. \n", + "\n", + "In this notebook we show how to use the \"move\" functionality of OpenTNSim with the activity workflow from OpenCLSim.\n", + "OpenCLSim does not allow sailing over graphs by default. OpenTNSim does not have the concept of activities. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "bf80dcb5", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "import time\n", + "\n", + "import simpy\n", + "import pandas as pd\n", + "import shapely\n", + "\n", + "import openclsim\n", + "import openclsim.model\n", + "import opentnsim\n", + "import networkx as nx\n" + ] + }, + { + "cell_type": "markdown", + "id": "93ae47bf", + "metadata": {}, + "source": [ + "# Create a simulation environment\n", + "This environment is shared between OpenCLSim & OpenTNSim through the `openclsim.core.SimpyObject`. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "21a191b6", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_start = 0\n", + "env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "4e5a5aba", + "metadata": {}, + "source": [ + "# Create sites and create a network\n", + "\n", + "Here we'll combine the site (OpenCLSim) and graph (OpenTNSim) properties from both models. OpenTNSim has the concept of a graph, but does not use sites. We specify the site using OpenCLSim components. We create a route and graph using networkx and shapely as expected by OpenTNSim.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "52318fab", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "id": "c0b02f28", + "metadata": {}, + "source": [ + "## Create the points and geometries\n", + "In OpenTNSim nodes are points, you can sail over a linestring between points. Here we add an extra point in between the form and to location. That way you can sail more complex routes than just great circles. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "cafedd1f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# prepare input data for from_site (note: in this example we only need the start location)\n", + "location_from_site = shapely.geometry.Point(4.18055556, 52.18664444)\n", + "\n", + "# prepare input data for to_site\n", + "location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + "\n", + "# create a geometry in between\n", + "intermediate_point = shapely.geometry.Point(4.2, 52.14)\n", + "# Line of 3 points\n", + "edge_geometry = shapely.geometry.LineString([location_from_site, intermediate_point, location_to_site])\n", + "edge_geometry" + ] + }, + { + "cell_type": "markdown", + "id": "c91a813e", + "metadata": {}, + "source": [ + "## Create the OpenCLSim sites\n", + "OpenCLSim ships always sail between sites. At each site it typically has to do something, like wait for a resource or fill a container. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b2ee2d9a", + "metadata": {}, + "outputs": [], + "source": [ + "# The from site\n", + "data_from_site = {\n", + " \"env\": env,\n", + " \"name\": \"from_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + "}\n", + "# instantiate to_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# We only need to define the to_site as an instance for OpenCLSim\n", + "data_to_site = {\n", + " \"env\": env,\n", + " \"name\": \"to_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "markdown", + "id": "e951c4f8", + "metadata": {}, + "source": [ + "## Create the OpenTNSim graph\n", + "OpenTNSim has the concept of a graph. It sails between nodes, over edges. Each node and edge is expected to have a geometry. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3e4a3b86", + "metadata": {}, + "outputs": [], + "source": [ + "graph = nx.Graph()\n", + "\n", + "# create a location based graph (with geometry as nodes)\n", + "graph.add_node(from_site.name, geometry=from_site.geometry)\n", + "graph.add_node(to_site.name, geometry=to_site.geometry)\n", + "graph.add_edge(from_site.name, to_site.name, geometry=edge_geometry)\n", + "\n", + "env.graph = graph" + ] + }, + { + "cell_type": "markdown", + "id": "1234d4bc", + "metadata": {}, + "source": [ + "## Define the vessel\n", + "Here we start to integrate OpenCLSim and OpenTNSim. We make a composed type of Movable and the OpenCLSim components that allow to move and transport goods (container, processor). " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "3be50ba8", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "564a50d5", + "metadata": {}, + "source": [ + "## Instantiate the vessel\n", + "We can now make the vessel. Compared to a normal OpenCLSim route we have an extra route property." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bed66786", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": env,\n", + " \"name\": \"vessel-01\",\n", + " \"geometry\": location_from_site, \n", + " \"capacity\": 5,\n", + " \"v\": 10,\n", + " \"route\": [from_site.name, to_site.name]\n", + "}\n", + "# instantiate vessel \n", + "vessel = TransportProcessingResource(**data_vessel01)\n", + "assert not vessel.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "685a5b9f", + "metadata": {}, + "source": [ + "## Setup the simulation\n", + "We can now have all the elements from the simulation. We can setup the regular OpenCLSim housekeeping." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "34f963b3", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "88cabb7c", + "metadata": {}, + "outputs": [], + "source": [ + "activity = openclsim.model.MoveActivity(\n", + " env=env,\n", + " name=\"Move activity\",\n", + " registry=registry,\n", + " mover=vessel,\n", + " destination=to_site,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "485057d1", + "metadata": {}, + "outputs": [], + "source": [ + "# initate the simpy processes defined in the 'move activity' and run simpy\n", + "openclsim.model.register_processes([activity])\n", + "env.run()" + ] + }, + { + "cell_type": "markdown", + "id": "9b8cc0e7", + "metadata": {}, + "source": [ + "## Show the results\n", + "We can now display how long it took. It should take more than 15min. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "44e6f1a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityState
091436857-3045-49d8-b95b-6772669f6f111970-01-01 00:00:00.000000START
191436857-3045-49d8-b95b-6772669f6f111970-01-01 00:32:16.644459STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\n", + "0 91436857-3045-49d8-b95b-6772669f6f11 1970-01-01 00:00:00.000000 \n", + "1 91436857-3045-49d8-b95b-6772669f6f11 1970-01-01 00:32:16.644459 \n", + "\n", + " ActivityState \n", + "0 START \n", + "1 STOP " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(activity))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 5538cdee8caad6383a6e79faf9d666f515e03bfa Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 22 Feb 2023 15:35:38 +0100 Subject: [PATCH 010/100] add demo of dredging with routing --- notebooks/33_Accessibility_Dredging.ipynb | 652 ++++++++++++++++++++++ 1 file changed, 652 insertions(+) create mode 100644 notebooks/33_Accessibility_Dredging.ipynb diff --git a/notebooks/33_Accessibility_Dredging.ipynb b/notebooks/33_Accessibility_Dredging.ipynb new file mode 100644 index 00000000..dbacc935 --- /dev/null +++ b/notebooks/33_Accessibility_Dredging.ipynb @@ -0,0 +1,652 @@ +{ + "cells": [ + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABtUAAAKqCAYAAABFHtH9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7N0FeBTX2wXwxWkpLdT+VKC0RYK7BUnQYMEdglM0uLsT3K24O8EdgltpoRQpUoImhLiQQGlzvnuHvfmG7e4mGwIky/k9fZ9NZmdH7kwy5J7eGYNNvJDWsC2kicEzeKRhW+he8bWXqChRYLFYLBYrAUpeV7wM20MniNdOhl0RmYxXICIiIiIiIiIiIqIkwDO4jmFbiKexw5PFYrFYrLdZF0V10v7HDiIiIiIiIiIiIqJEyTPY2bAt5IyuY5PFYrFYrHdVvuK61Np4hSIiIiIiIiIiIiJKJLRbPP63U7OgVzhGXI/CXr8X8PJ/Ad9n0SAiInpdwX9Ha9cVWRNuPkOdc0//cw0ylidHrREREREREREREdG75xmcQeuwNOnEbP1bJLyf/mvs+iQiInrzZNAm/0eODLtDX7kmibqoXa+IiIiIiIiIiIiI3hmTQM35ZATDNCIieqdkuNbp9yh9qCbrDEesERERERERERER0buxPXSCvsNSdmBGMU8jIqJEYvrtZ/pQDeK6tc54BSMiIiIiIiIiIiJ6S7aHVNV3VMpAjYiIKLGZ7/381WBtW0gn45WMiIiIiIiIiIiI6C2Qz6cxdlDKWz5yhBoRESVWPf945VaQvny+GhEREREREREREb0dnsF1VOdk2p2h8H0Wbey2JCIiSnzk//iRaV+YPlibbryiEREREREREREREb1B20K8VMek/L//iYiIErt1D//Wh2pRBi+kNV7ViIiIiIiIiIiIiN4Aecus/++U5Cg1IiJKMrIe0I1Wk88GJSIiIiIiIiIiInpjPINbqw5J+Sw1IiKipMLk2Wq8BSQRERERERERERG9QdtClqkOyem3nxm7KYmIiBI/L/8X+lDtjPHKRkRERERERERERPQGbAvdqzok9/q9MHZTEhERJX7ylsW6UM3beGUjIiIiIiIiIiIiegO2hVxXHZLXw/81dlMSERElDeoaphURERERERERERHRG7MtJEp1Rgb/HW3soiQiIkoa0u4MZahGREREREREREREb4HqiBRFRESU1OivY8YrGxEREREREREREdEboOuMJCIiSmr01zHj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" + } + }, + "cell_type": "markdown", + "id": "0f8c41d2", + "metadata": {}, + "source": [ + "# Harbour traffic problem\n", + "This notebook is developed to address the interference between dredging vessels and container vessels in a certain berth area. Therefore, the berth area is served by both dredging and container vessels.\n", + "\n", + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "id": "925c02db", + "metadata": {}, + "source": [ + "## 0. Imports" + ] + }, + { + "cell_type": "markdown", + "id": "d5ca66d8", + "metadata": {}, + "source": [ + "We start importing the required libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f309f38", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx \n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime, time\n", + "import simpy\n", + "import openclsim\n", + "import opentnsim\n", + "\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "markdown", + "id": "13097253", + "metadata": {}, + "source": [ + "## 1. Initialize simpy environment" + ] + }, + { + "cell_type": "markdown", + "id": "7c0a7d83", + "metadata": {}, + "source": [ + "The simpy environment is initialized and a single environment is used for both OpenCLSim and OpenTNSim." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "651c0a4c", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "47c1b768", + "metadata": {}, + "source": [ + "### 1.1. Create graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "342c006e", + "metadata": {}, + "outputs": [], + "source": [ + "# we start with creating a graph \n", + "graph = nx.DiGraph()\n", + "\n", + "# make your preferred Site class out of available mix-ins which is a combination of mixins from OpenCLSim and OpenTNSim.\n", + "Location = type('Site',\n", + " (openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,), {})\n", + "\n", + "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", + "# based on the mixins, more attributes are defined for each location.\n", + "locations = []\n", + "\n", + "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore = {\"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_offshore))\n", + "offshore = Location(**data_offshore)\n", + "\n", + "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", + "data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_berth))\n", + "berth = Location(**data_berth)\n", + "\n", + "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", + "data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + " }\n", + "locations.append(Location(**data_dump))\n", + "dump = Location(**data_dump) \n", + " \n", + "# a graph is initiated based on the name and gemometry of locations.\n", + "# other attributes such as store_capacity and initials are not being used for drawing the graph.\n", + "for location in locations:\n", + " graph.add_node(location.name,\n", + " geometry = location.geometry)\n", + " \n", + "# add edges\n", + "path = [[locations[i], locations[i+1]] for i in range(len(locations)-1)]\n", + "\n", + "for index, edge in enumerate(path):\n", + " graph.add_edge(edge[0].name, edge[1].name, weight = 1)\n", + " \n", + "# toggle to undirected and back to directed to make sure all edges are two way traffic\n", + "graph = graph.to_undirected() \n", + "graph = graph.to_directed()\n", + "\n", + "# create a positions dict for the purpose of plotting\n", + "positions = {}\n", + "for location in graph.nodes:\n", + " positions[location] = (graph.nodes[location]['geometry'].x, graph.nodes[location]['geometry'].y)\n", + " \n", + "# collect node labels.\n", + "labels = {}\n", + "for location in graph.nodes:\n", + " labels[location] = location\n", + "print('Number of edges is {}'.format(len(graph.edges)))\n", + "\n", + "# draw edges, nodes and labels.\n", + "nx.draw_networkx_edges(graph, pos=positions, width=3, edge_color=\"red\", alpha=1, arrowsize=40)\n", + "nx.draw_networkx_nodes(graph, pos=positions, node_color=\"darkblue\", node_size=1500)\n", + "nx.draw_networkx_labels(graph, pos=positions, labels=labels, font_size=8, font_weight='bold', font_color=\"white\")\n", + "\n", + "plt.axis(\"off\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7497055", + "metadata": {}, + "outputs": [], + "source": [ + "# add a graph to the environment\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5065dad1", + "metadata": {}, + "outputs": [], + "source": [ + "m = folium.Map(location=[52.66, 4.43], zoom_start=8)\n", + "\n", + "folium.Marker(\n", + " [location_dump.y, location_dump.x ], \n", + " popup=\"Dump\", \n", + " tooltip=\"Dump\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_offshore.y, location_offshore.x ], \n", + " popup=\"Offshore\", \n", + " tooltip=\"Offshore\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_berth.y, location_berth.x ], \n", + " popup=\"Berth\", \n", + " tooltip=\"Berth\"\n", + ").add_to(m)\n", + "\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "94c9d59b", + "metadata": {}, + "source": [ + "## 2. OpenCLSim - dredging process\n", + "Derived from:\n", + "http://localhost:8888/notebooks/OpenCLSim/notebooks/32_openclsim_opentnsim.ipynb" + ] + }, + { + "cell_type": "markdown", + "id": "07e8f8b9", + "metadata": {}, + "source": [ + "#### 2.1 Initialise objects" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "387db4f8", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "Vessel_obj = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " openclsim.core.LoadingFunction,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "f54fe41d", + "metadata": {}, + "source": [ + "#### 2.2 Create sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e1f53375", + "metadata": {}, + "outputs": [], + "source": [ + "# example of how to find a location from the list of locations, based on a name \n", + "[i for i, x in enumerate(locations) if x.name == 'offshore'][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "faa6445d", + "metadata": {}, + "outputs": [], + "source": [ + "# data from_site\n", + "name = \"berth\"\n", + "data_from_site = {\n", + " \"env\": my_env,\n", + " \"name\": name,\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100\n", + "}\n", + "# instantiate from_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# data to_site\n", + "name = \"dump\"\n", + "data_to_site = {\n", + " \"env\": my_env,\n", + " \"name\": name,\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "markdown", + "id": "769b185f", + "metadata": {}, + "source": [ + "#### 2.3 Create vessels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4c3ddfa", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "start_location = \"berth\"\n", + "\n", + "offshore_start_location = shapely.geometry.Point(3.3597304, 52.4400985)\n", + "\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging vessel\",\n", + " \"geometry\": offshore_start_location, \n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 5,\n", + " \"capacity\": 10,\n", + " \"v\": 10,\n", + " \"route\": nx.dijkstra_path(my_env.graph, 'berth', 'dump')\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = Vessel_obj(**data_vessel01)\n", + "# assert not vessel01.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "2dd28d32", + "metadata": {}, + "source": [ + "#### 2.4 Create activities" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd2aa7de", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d586e52b", + "metadata": {}, + "outputs": [], + "source": [ + "# create a 'while activity' that contains a pre-packed set of 'sub_processes'\n", + "single_run, while_activity = openclsim.model.single_run_process(\n", + " name=\"single_run\",\n", + " registry={},\n", + " env=my_env,\n", + " origin=berth,\n", + " destination=dump,\n", + " mover=vessel01,\n", + " loader=vessel01,\n", + " unloader=vessel01\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0039485e", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.model.register_processes([while_activity])" + ] + }, + { + "cell_type": "markdown", + "id": "9b5b235c", + "metadata": {}, + "source": [ + "## 3. OpenTNSim - port process" + ] + }, + { + "cell_type": "markdown", + "id": "fe93715c", + "metadata": {}, + "source": [ + "#### 3.2. Create vessel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7820375", + "metadata": {}, + "outputs": [], + "source": [ + "# # define a path into and out of the habour\n", + "# path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", + "# path2 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore')\n", + "# path = path1+path2[1:]\n", + "# display(path)\n", + "\n", + "# # prepare input data for vessel_02\n", + "# start_location = \"offshore\"\n", + "# data_vessel02 = {\n", + "# \"env\": my_env,\n", + "# \"name\": \"seagoing vessel\",\n", + "# \"geometry\": location_offshore, \n", + "# \"capacity\": 10,\n", + "# \"v\": 10,\n", + "# \"route\": path}\n", + "\n", + "# # instantiate vessel_02 \n", + "# vessel02 = Vessel_obj(**data_vessel02)\n", + "# assert not vessel02.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "74712deb", + "metadata": {}, + "source": [ + "#### 3.3. Create the vessel activity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "edefaf5e", + "metadata": {}, + "outputs": [], + "source": [ + "# specify the process that needs to be executed\n", + "# my_env.process(vessel02.move())" + ] + }, + { + "cell_type": "markdown", + "id": "740ee870", + "metadata": {}, + "source": [ + "### 4, Run the simulation\n", + "Will execute all prepared activities (as specified in 2.4 (OpenCLSim) and 3.3 (OpenTNSim))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f03a6c5", + "metadata": {}, + "outputs": [], + "source": [ + "single_run" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cdfb07a6", + "metadata": {}, + "outputs": [], + "source": [ + "move_activity = single_run[0]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22584049", + "metadata": {}, + "outputs": [], + "source": [ + "shift_amount_activity = single_run[1]\n", + "shift_amount_activity.processor.name\n", + "shift_amount_activity.processor.geometry.wkt\n", + "shift_amount_activity.processor.log\n", + "shift_amount_activity.processor.geometry.wkt, shift_amount_activity.destination.geometry.wkt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7571a7a", + "metadata": {}, + "outputs": [], + "source": [ + "dump_activity = single_run[3]\n", + "dump_activity.processor.geometry.wkt, dump_activity.origin.geometry.wkt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "702f89e7", + "metadata": {}, + "outputs": [], + "source": [ + "# start the simulation\n", + "my_env.run()" + ] + }, + { + "cell_type": "markdown", + "id": "a961e82d", + "metadata": {}, + "source": [ + "### 5. Inspect the results" + ] + }, + { + "cell_type": "markdown", + "id": "68e2337a", + "metadata": {}, + "source": [ + "#### 5.1 The OpenCLSim components" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0afdc95c", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "display(openclsim.plot.get_log_dataframe(vessel01, [*single_run, while_activity]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55bb86b3", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.plot.get_gantt_chart([while_activity, vessel01, *single_run])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9051bca5", + "metadata": {}, + "outputs": [], + "source": [ + "fig = openclsim.plot.get_step_chart([berth, dump, vessel01])" + ] + }, + { + "cell_type": "markdown", + "id": "5d0021d2", + "metadata": {}, + "source": [ + "#### 5.1 The OpenTNSim components" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c8be2e2d", + "metadata": {}, + "outputs": [], + "source": [ + "vessel02.log" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a13c791", + "metadata": {}, + "outputs": [], + "source": [ + "# note the slightly different log handling than for the openclsim elemnents\n", + "df = pd.DataFrame.from_dict(vessel02.log)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6d8b60a9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "vscode": { + "interpreter": { + "hash": "467690b349221dc2aa421ef548b970b1093cce4037f28fe6b032bbac888fe15e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 6fb89fcad0f8fce64ea6b2aafc047b98a757f824 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 28 Feb 2023 10:41:01 +0100 Subject: [PATCH 011/100] Create priority.py --- src/openclsim/core/priority.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/openclsim/core/priority.py diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py new file mode 100644 index 00000000..67af150f --- /dev/null +++ b/src/openclsim/core/priority.py @@ -0,0 +1,33 @@ +class Priority: + def __init__(self, env, priority=0, *args, **kwargs): + super().__init__(env, *args, **kwargs) + self.priority = priority + + def can_sail(self, location): + """Determine if the vessel can sail through the given location.""" + priority_level = location.priority_level + return self.priority >= priority_level + + def enter_location(self, location): + """Request permission to enter the location based on priority.""" + with location.request(priority=self.priority) as req: + yield req + +class Location: + def __init__(self, env, priority_level=0): + self.env = env + self.priority_level = priority_level + self.queue = [] + + def request(self, priority=0): + """Request permission to enter the location.""" + req = self.env.event() + self.queue.append((priority, req)) + self.queue.sort(reverse=True) + return req + + def allow_next(self): + """Allow the next vessel in the queue to enter the location.""" + if len(self.queue) > 0: + _, req = self.queue.pop(0) + req.succeed() From a102c29dc23aacceada1556c2b5b1dfb5cf01b97 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Tue, 28 Feb 2023 20:44:59 +0100 Subject: [PATCH 012/100] add opentnsim compatible log entry functions --- src/openclsim/core/log.py | 35 +++++++++++- src/openclsim/core/movable.py | 60 +++++++++++--------- src/openclsim/core/processor.py | 8 +-- src/openclsim/model/base_activities.py | 12 ++-- src/openclsim/model/basic_activity.py | 8 +-- src/openclsim/model/move_activity.py | 10 +++- src/openclsim/model/parallel_activity.py | 8 +-- src/openclsim/model/sequential_activity.py | 8 +-- src/openclsim/model/shift_amount_activity.py | 8 ++- src/openclsim/model/while_activity.py | 6 +- 10 files changed, 104 insertions(+), 59 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 25e80073..7e71e331 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -2,6 +2,8 @@ import datetime from enum import Enum +import deprecation + from .simpy_object import SimpyObject @@ -25,6 +27,7 @@ class Log(SimpyObject): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" + # record oriented list of log messages self.log = { "Timestamp": [], "ActivityID": [], @@ -33,7 +36,16 @@ def __init__(self, *args, **kwargs): "ActivityLabel": [], } - def log_entry( + @property + def log(self): + """return the log in log format""" + df = pd.DataFrame(self.logbook) + # Convert table to this format: + # {'a': [1, 2], 'b': [2, 4]} + list_format = df.to_dict(orient='list') + return list_format + + def log_entry_v1( self, t, activity_id, @@ -41,6 +53,7 @@ def log_entry( additional_state=None, activity_label=None, ): + """Log an entry (openclsim version)""" object_state = self.get_state() if additional_state: object_state.update(additional_state) @@ -59,6 +72,22 @@ def log_entry( self.log["ObjectState"].append(object_state) self.log["ActivityLabel"].append(activity_label) + def log_entry_v0(self, log, t, value, geometry_log): + """Log an entry (opentnsim version)""" + self.log["Message"].append(log) + self.log["Timestamp"].append(datetime.datetime.fromtimestamp(t)) + self.log["Value"].append(value) + self.log["Geometry"].append(geometry_log) + + @deprecation.deprecated(details="Use .log_entry_v0 instead") + def log_entry(self, *args, **kwargs): + """Backward compatible log_entry. Calls the opentnsim variant.""" + assert len(args) >= 2 or 't' in kwargs, 'Expected t as second argument or as named argument' + t_argument = kwargs.get('t', args[1]) + assert isinstance(t_argument, datetime.datetime), 'Expected t of type: datetime.datetime' + self.log_entry_v0(*args, **kwargs) + + def get_state(self): """ empty instance of the get state function. @@ -66,7 +95,11 @@ def get_state(self): Add an empty instance of the get state function so that it is always available. """ + state = {} if hasattr(super(), "get_state"): state = super().get_state() return state + + + diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index b7bdd28e..cb41c7b3 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -26,18 +26,6 @@ def pairwise(iterable): logger = logging.getLogger(__name__) -class Routable(SimpyObject): - """Mixin class: Something with a route (networkx node list format) - - - route: list of node-IDs - - - """ - - def __init__(self, route, *args, **kwargs): - super().__init__(*args, **kwargs) - self.route = route - - class Movable(SimpyObject, Locatable): """ Movable class. @@ -47,15 +35,17 @@ class Movable(SimpyObject, Locatable): Parameters ---------- - v: speed + v: speed (1d) + engine_order: factor that determines how much of the speed is used. """ - def __init__(self, v: float = 1, *args, **kwargs): + def __init__(self, v: float = 1, engine_order: float = 1, *args, **kwargs): super().__init__(*args, **kwargs) - """Initialization""" + """""" self._v = v + self.engine_order = 1 - def move(self, destination=None, engine_order=1.0, duration=None): + def move(self, destination: Locatable = None, duration: float = None): """ Determine distance between origin and destination. @@ -66,7 +56,7 @@ def move(self, destination=None, engine_order=1.0, duration=None): raise ValueError("Movable in OpenCLSim does not support empty destination") # Log the start event - self.log_entry( + self.log_entry_v1( self.env.now, self.activity_id, LogState.START, @@ -74,20 +64,21 @@ def move(self, destination=None, engine_order=1.0, duration=None): # Determine the sailing_duration if duration is not None: - sailing_duration = duration + duration = duration else: - sailing_duration = self.sailing_duration( - self.geometry, destination, engine_order + duration = self.duration( + self.geometry, destination ) # Check out the time based on duration of sailing event - yield self.env.timeout(sailing_duration) + yield self.env.timeout(duration) # Set mover geometry to destination geometry + print('updating to destination geometry', destination.geometry) self.geometry = shapely.geometry.shape(destination.geometry) # Log the stop event - self.log_entry( + self.log_entry_v1( self.env.now, self.activity_id, LogState.STOP, @@ -95,7 +86,8 @@ def move(self, destination=None, engine_order=1.0, duration=None): @property def v(self): - return self._v + """return the velocity * engine_order""" + return self._v * self.engine_order @property def current_speed(self): @@ -105,12 +97,17 @@ def current_speed(self): ) return self.v - def sailing_duration(self, origin, destination, engine_order, verbose=True): - """Determine the sailing duration.""" + @staticmethod + def distance(origin, destination): + """Determine the sailing distance based on great circle path from origin to destination.""" orig = shapely.geometry.shape(self.geometry) dest = shapely.geometry.shape(destination.geometry) _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) + return distance + def duration(self, origin, destination, engine_order, verbose=True): + """Determine the duration based on great circle path from origin to destination.""" + distance = self.distance(origin, destination) return distance / (self.v * engine_order) @@ -189,13 +186,20 @@ def current_speed(self): ) return self.v +class Navigator: + def find_route(waypoints): + route = [] + return route -class CanSailOnGraph(Routable, Movable): - """Mixin class: Allows to move over nodes on a graph""" +class Routable(SimpyObject): + """Mixin class: Something with a route (networkx node list format) + route: a list of node ids (available on env.graph) or geometries (shapely.Geometry) + """ - def __init__(self, *args, **kwargs): + def __init__(self, route: list, *args, **kwargs): super().__init__(*args, **kwargs) # call functions when passing edges + self.route = route self.on_pass_edge_functions = [] self.wgs84 = pyproj.Geod(ellps="WGS84") assert hasattr(self.env, "FG"), "expected graph FG to be available on env" diff --git a/src/openclsim/core/processor.py b/src/openclsim/core/processor.py index ff2c5ec7..48715cb8 100644 --- a/src/openclsim/core/processor.py +++ b/src/openclsim/core/processor.py @@ -52,7 +52,7 @@ def process( # Log the process for all parts for location in set([self, origin, destination]): - location.log_entry( + location.log_entry_v1( t=location.env.now, activity_id=self.activity_id, activity_state=LogState.START, @@ -82,7 +82,7 @@ def process( # Log the process for all parts for location in set([self, origin, destination]): - location.log_entry( + location.log_entry_v1( t=location.env.now, activity_id=self.activity_id, activity_state=LogState.STOP, @@ -117,7 +117,7 @@ def check_possible_shift( # If the amount is not available in the origin, log waiting if start_time != end_time: - self.log_entry( + self.log_entry_v1( t=start_time, activity_id=self.activity_id, activity_state=LogState.WAIT_START, @@ -126,7 +126,7 @@ def check_possible_shift( "ref": f"waiting {obj.name} content", }, ) - self.log_entry( + self.log_entry_v1( t=end_time, activity_id=self.activity_id, activity_state=LogState.WAIT_STOP, diff --git a/src/openclsim/model/base_activities.py b/src/openclsim/model/base_activities.py index c0f8389a..85169c40 100644 --- a/src/openclsim/model/base_activities.py +++ b/src/openclsim/model/base_activities.py @@ -96,14 +96,14 @@ def post_process(self, *args, **kwargs): yield from item["plugin"].post_process(*args, **kwargs) def delay_processing(self, env, activity_label, activity_log, waiting): - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_START, activity_label=activity_label, ) yield env.timeout(waiting) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_STOP, @@ -240,13 +240,13 @@ def delayed_process( if env.now > start_time: # log start - activity_log.log_entry( + activity_log.log_entry_v1( t=start_time, activity_id=activity_log.id, activity_state=core.LogState.WAIT_START, ) for log in additional_logs: - log.log_entry( + log.log_entry_v1( t=start_time, activity_id=activity_log.id, activity_state=core.LogState.WAIT_START, @@ -257,13 +257,13 @@ def delayed_process( ) # log stop - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_STOP, ) for log in additional_logs: - log.log_entry( + log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_STOP, diff --git a/src/openclsim/model/basic_activity.py b/src/openclsim/model/basic_activity.py index 6a2d2fe0..001f3f72 100644 --- a/src/openclsim/model/basic_activity.py +++ b/src/openclsim/model/basic_activity.py @@ -74,7 +74,7 @@ def main_process_function(self, activity_log, env): start_basic = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -82,7 +82,7 @@ def main_process_function(self, activity_log, env): if isinstance(self.additional_logs, list) and len(self.additional_logs) > 0: for log_item in self.additional_logs: - log_item.log_entry( + log_item.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -94,12 +94,12 @@ def main_process_function(self, activity_log, env): yield env.timeout(self.duration) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP ) if isinstance(self.additional_logs, list) and len(self.additional_logs) > 0: for log_item in self.additional_logs: - log_item.log_entry( + log_item.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/move_activity.py b/src/openclsim/model/move_activity.py index cb8301f1..91826707 100644 --- a/src/openclsim/model/move_activity.py +++ b/src/openclsim/model/move_activity.py @@ -81,6 +81,8 @@ def main_process_function(self, activity_log, env): speed the mover should sail. for example, engine_order=0.5 corresponds to sailing at 50% of max speed """ + + print('mover', self.mover.name, 'destination', self.destination.name) yield from self._request_resource(self.requested_resources, self.mover.resource) start_time = env.now @@ -91,7 +93,7 @@ def main_process_function(self, activity_log, env): } yield from self.pre_process(args_data) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -104,8 +106,10 @@ def main_process_function(self, activity_log, env): engine_order=self.engine_order, duration=self.duration, ) + print('mover', self.mover.name, 'is now at', self.mover.geometry.wkt) + - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -118,3 +122,5 @@ def main_process_function(self, activity_log, env): self._release_resource( self.requested_resources, self.mover.resource, self.keep_resources ) + + print('mover', self.mover.name, 'is now at', self.mover.geometry.wkt) diff --git a/src/openclsim/model/parallel_activity.py b/src/openclsim/model/parallel_activity.py index 07231002..6413c107 100644 --- a/src/openclsim/model/parallel_activity.py +++ b/src/openclsim/model/parallel_activity.py @@ -40,7 +40,7 @@ def main_process_function(self, activity_log, env): start_time_parallel = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -51,7 +51,7 @@ def main_process_function(self, activity_log, env): stop_events = [] subprocess_ids = [] for sub_process in self.sub_processes: - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -75,7 +75,7 @@ def main_process_function(self, activity_log, env): while i < len(stop_events): if self.parse_expression(stop_events[i]).triggered is True: stop_events.pop(i) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -87,7 +87,7 @@ def main_process_function(self, activity_log, env): else: i += 1 - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/sequential_activity.py b/src/openclsim/model/sequential_activity.py index 3aad3dbf..cb9b1f91 100644 --- a/src/openclsim/model/sequential_activity.py +++ b/src/openclsim/model/sequential_activity.py @@ -40,7 +40,7 @@ def main_process_function(self, activity_log, env): start_sequence = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -49,7 +49,7 @@ def main_process_function(self, activity_log, env): self.start_sequence.succeed() for sub_process in self.sub_processes: - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -70,7 +70,7 @@ def main_process_function(self, activity_log, env): ) yield stop_event - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -80,7 +80,7 @@ def main_process_function(self, activity_log, env): }, ) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/shift_amount_activity.py b/src/openclsim/model/shift_amount_activity.py index 04b9030a..29c3c0df 100644 --- a/src/openclsim/model/shift_amount_activity.py +++ b/src/openclsim/model/shift_amount_activity.py @@ -68,7 +68,9 @@ def __init__( def main_process_function(self, activity_log, env): """Origin and Destination are of type HasContainer.""" - assert self.processor.is_at(self.origin) + print('processing shift amount', 'processor', self.processor.name, 'origin', self.origin.name) + msg = f"Processor {self.processor.name} is at {self.processor.geometry.wkt}. But we expect to shift an amount from the origin location ({self.origin.name}) at {self.origin.geometry.wkt}" + assert self.processor.is_at(self.origin), msg assert self.destination.is_at(self.origin) yield from self._request_resource( @@ -138,7 +140,7 @@ def main_process_function(self, activity_log, env): } yield from self.pre_process(args_data) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -151,7 +153,7 @@ def main_process_function(self, activity_log, env): activity_id=activity_log.id, ) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/while_activity.py b/src/openclsim/model/while_activity.py index 0ae01946..80cbd1b6 100644 --- a/src/openclsim/model/while_activity.py +++ b/src/openclsim/model/while_activity.py @@ -31,7 +31,7 @@ def main_process_function(self, activity_log, env): while True: self.start_sequence.succeed() for sub_process in self.sub_processes: - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -52,7 +52,7 @@ def main_process_function(self, activity_log, env): ) yield stop_event - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -80,7 +80,7 @@ def main_process_function(self, activity_log, env): # Re-add the activities to the simpy environment register_processes(self.sub_processes) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, From 0994eaa43d62329d23e3c6509ed162e42f08bd0c Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Tue, 28 Feb 2023 20:50:33 +0100 Subject: [PATCH 013/100] extra asserts for openclsim/opentnsim compatibility --- src/openclsim/core/log.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 7e71e331..57754115 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -28,17 +28,11 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" # record oriented list of log messages - self.log = { - "Timestamp": [], - "ActivityID": [], - "ActivityState": [], - "ObjectState": [], - "ActivityLabel": [], - } + self.logbook = [] @property def log(self): - """return the log in log format""" + """return the log in log format (compatible with old log attribute)""" df = pd.DataFrame(self.logbook) # Convert table to this format: # {'a': [1, 2], 'b': [2, 4]} @@ -54,6 +48,8 @@ def log_entry_v1( activity_label=None, ): """Log an entry (openclsim version)""" + assert isinstance(t, float), "expected t variable of type float" + object_state = self.get_state() if additional_state: object_state.update(additional_state) @@ -66,18 +62,25 @@ def log_entry_v1( assert activity_label.get("type") is not None assert activity_label.get("ref") is not None - self.log["Timestamp"].append(datetime.datetime.utcfromtimestamp(t)) - self.log["ActivityID"].append(activity_id) - self.log["ActivityState"].append(activity_state.name) - self.log["ObjectState"].append(object_state) - self.log["ActivityLabel"].append(activity_label) + entry = { + "Timestamp": datetime.datetime.utcfromtimestamp(t), + "ActivityID": activity_id, + "ActivityState": activity_state.name, + "ObjectState": object_state, + "ActivityLabel": activity_label + } + self.logbook.append(entry) def log_entry_v0(self, log, t, value, geometry_log): """Log an entry (opentnsim version)""" - self.log["Message"].append(log) - self.log["Timestamp"].append(datetime.datetime.fromtimestamp(t)) - self.log["Value"].append(value) - self.log["Geometry"].append(geometry_log) + assert isinstance(log, str), "expected log variable of type string" + entry = { + "Message": log, + "Timestamp": datetime.datetime.fromtimestamp(t), + "Value": value, + "Geometry": geometry_log + } + self.logbook.append(entry) @deprecation.deprecated(details="Use .log_entry_v0 instead") def log_entry(self, *args, **kwargs): From 32b6a3339a7bf02b0ea70fb5283061b3e11e36d8 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Thu, 29 Dec 2022 13:11:50 +0100 Subject: [PATCH 014/100] make openclsim moving compatible with opentnsim moving, use opentnsim movable as an example in moveactivity --- notebooks/32_openclsim_opentnsim.ipynb | 259 +++++++++++++++++++++++++ src/openclsim/core/movable.py | 72 ++++++- 2 files changed, 325 insertions(+), 6 deletions(-) create mode 100644 notebooks/32_openclsim_opentnsim.ipynb diff --git a/notebooks/32_openclsim_opentnsim.ipynb b/notebooks/32_openclsim_opentnsim.ipynb new file mode 100644 index 00000000..7fe093b4 --- /dev/null +++ b/notebooks/32_openclsim_opentnsim.ipynb @@ -0,0 +1,259 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "bf80dcb5", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "import time\n", + "\n", + "import simpy\n", + "import pandas as pd\n", + "import shapely\n", + "\n", + "import openclsim\n", + "import openclsim.model\n", + "import opentnsim\n", + "import networkx as nx\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3e4a3b86", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)\n", + "graph = nx.Graph()\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3be50ba8", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b2ee2d9a", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for from_site (note: in this example we only need the start location)\n", + "location_from_site = shapely.geometry.Point(4.18055556, 52.18664444)\n", + "\n", + "# prepare input data for to_site\n", + "location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + "data_to_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"to_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 100,\n", + " \"level\": 100\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5bba2225", + "metadata": {}, + "outputs": [], + "source": [ + "# create a location based graph (with geometry as nodes)\n", + "my_env.graph.add_node(location_from_site, **{\"geometry\": location_from_site})\n", + "my_env.graph.add_node(location_to_site, **{\"geometry\": location_to_site})\n", + "my_env.graph.add_edge(location_from_site, location_to_site)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "bed66786", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"vessel01\",\n", + " \"geometry\": location_from_site, \n", + " \"capacity\": 5,\n", + " \"v\": 10,\n", + " \"route\": [location_from_site, location_to_site]\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "34f963b3", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "88cabb7c", + "metadata": {}, + "outputs": [], + "source": [ + "activity = openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"Move activity\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=to_site,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "485057d1", + "metadata": {}, + "outputs": [], + "source": [ + "# initate the simpy processes defined in the 'move activity' and run simpy\n", + "openclsim.model.register_processes([activity])\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "44e6f1a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityState
074edfe04-f803-4508-aca0-869c02e835ca1970-01-01 00:00:00.000000START
174edfe04-f803-4508-aca0-869c02e835ca1970-01-01 00:15:42.824591STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\n", + "0 74edfe04-f803-4508-aca0-869c02e835ca 1970-01-01 00:00:00.000000 \n", + "1 74edfe04-f803-4508-aca0-869c02e835ca 1970-01-01 00:15:42.824591 \n", + "\n", + " ActivityState \n", + "0 START \n", + "1 STOP " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(activity))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 59f5ecc6..82cfdc8c 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -1,7 +1,9 @@ """Component to move the simulation objects.""" import logging +import warnings import shapely.geometry +import networkx as nx from .container import HasContainer, HasMultiContainer from .locatable import Locatable @@ -11,6 +13,18 @@ logger = logging.getLogger(__name__) +class Routable(SimpyObject): + """Mixin class: Something with a route (networkx node list format) + + - route: list of node-IDs + - + """ + + def __init__(self, route, *args, **kwargs): + super().__init__(*args, **kwargs) + self.route = route + + class Movable(SimpyObject, Locatable): """ Movable class. @@ -26,15 +40,18 @@ class Movable(SimpyObject, Locatable): def __init__(self, v: float = 1, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" - self.v = v + self._v = v - def move(self, destination, engine_order=1.0, duration=None): + def move(self, destination=None, engine_order=1.0, duration=None): """ Determine distance between origin and destination. Yield the time it takes to travel based on speed properties and load factor of the speed. """ + if destination is None: + raise ValueError("Movable in OpenCLSim does not support empty destination") + # Log the start event self.log_entry( self.env.now, @@ -64,7 +81,15 @@ def move(self, destination, engine_order=1.0, duration=None): ) @property - def current_speed(self): + def v(self): + return self._v + + @property + def currentspeed(self): + warnings.warn( + "The property `.currentspeed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) return self.v def sailing_duration(self, origin, destination, engine_order, verbose=True): @@ -73,7 +98,7 @@ def sailing_duration(self, origin, destination, engine_order, verbose=True): dest = shapely.geometry.shape(destination.geometry) _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) - return distance / (self.current_speed * engine_order) + return distance / (self.v * engine_order) class ContainerDependentMovable(Movable, HasContainer): @@ -98,11 +123,19 @@ def __init__(self, compute_v, *args, **kwargs): self.compute_v = compute_v @property - def current_speed(self): + def v(self): return self.compute_v( self.container.get_level() / self.container.get_capacity() ) + @property + def currentspeed(self): + warnings.warn( + "The property `.currentspeed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) + return self.v + class MultiContainerDependentMovable(Movable, HasMultiContainer): """ @@ -126,7 +159,7 @@ def __init__(self, compute_v, *args, **kwargs): self.conainter_ids = self.container.container_list @property - def current_speed(self): + def v(self): sum_level = 0 sum_capacity = 0 for id_ in self.container.container_list: @@ -134,3 +167,30 @@ def current_speed(self): sum_capacity = self.container.get_capacity(id_) fill_degree = sum_level / sum_capacity return self.compute_v(fill_degree) + + @property + def currentspeed(self): + warnings.warn( + "The property `.currentspeed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) + return self.v + + +class CanSailOnGraph(Routable, Movable): + """Mixin class: Allows to move over nodes on a graph""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # call functions when passing edges + self.on_pass_edge_functions = [] + assert hasattr(self.env, "FG"), "expected graph FG to be available on env" + + def pass_edge(self, origin: str, destination: str): + """Pass an edge. The node pair origin destination should be available on the env.FG graph.""" + edge = self.env.FG.edges[origin, destination] + # get origin and destination geometry + orig = nx.get_node_attributes(self.env.FG, "geometry")[origin] + dest = nx.get_node_attributes(self.env.FG, "geometry")[destination] + for on_pass_edge_function in self.on_pass_edge_functions: + on_pass_edge_function(origin, destination) From c6ef44002235666df2b1dd3ce19e03fad06d2079 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 10:18:14 +0100 Subject: [PATCH 015/100] add networkx module --- setup.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 0f1ae2e9..baca0dbd 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,9 +34,9 @@ install_requires = simpy shapely pyproj - nose plotly matplotlib + networkx [options.packages.find] where = src @@ -51,6 +51,7 @@ exclude = # Add here test requirements (semicolon/line-separated) testing = coverage-badge + nose faker lxml mock From ec30e46a1b832c7662d87424c8e09cefa9f0607b Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 10:36:43 +0100 Subject: [PATCH 016/100] flake8 --- src/openclsim/core/movable.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 82cfdc8c..8075a2c0 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -3,7 +3,6 @@ import warnings import shapely.geometry -import networkx as nx from .container import HasContainer, HasMultiContainer from .locatable import Locatable @@ -187,10 +186,13 @@ def __init__(self, *args, **kwargs): assert hasattr(self.env, "FG"), "expected graph FG to be available on env" def pass_edge(self, origin: str, destination: str): - """Pass an edge. The node pair origin destination should be available on the env.FG graph.""" - edge = self.env.FG.edges[origin, destination] + """Pass an edge. The node pair origin destination should be available on the env.graph.""" + edge = self.env.graph.edges[origin, destination] # get origin and destination geometry - orig = nx.get_node_attributes(self.env.FG, "geometry")[origin] - dest = nx.get_node_attributes(self.env.FG, "geometry")[destination] + origin_geometry = self.env.graph.nodes[origin]["geometry"] + destination_geometry = self.env.graph.nodes[destination]["geometry"] + edge_geometry = edge["geometry"] + print("check if we need to reorder", edge_geometry, origin_geometry, destination_geometry) + for on_pass_edge_function in self.on_pass_edge_functions: on_pass_edge_function(origin, destination) From 594b19e639b2ef63c7ff0f2fa934ec155d908e59 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 10:38:58 +0100 Subject: [PATCH 017/100] fix typo in attribute name, flake8 --- src/openclsim/core/movable.py | 9 +++++++-- tests/test_basic_functions.py | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 8075a2c0..0f4aea74 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -84,7 +84,7 @@ def v(self): return self._v @property - def currentspeed(self): + def current_speed(self): warnings.warn( "The property `.currentspeed` is deprected. Use `.v` instead.", DeprecationWarning, @@ -192,7 +192,12 @@ def pass_edge(self, origin: str, destination: str): origin_geometry = self.env.graph.nodes[origin]["geometry"] destination_geometry = self.env.graph.nodes[destination]["geometry"] edge_geometry = edge["geometry"] - print("check if we need to reorder", edge_geometry, origin_geometry, destination_geometry) + print( + "check if we need to reorder", + edge_geometry, + origin_geometry, + destination_geometry, + ) for on_pass_edge_function in self.on_pass_edge_functions: on_pass_edge_function(origin, destination) diff --git a/tests/test_basic_functions.py b/tests/test_basic_functions.py index d3eb964c..527db986 100644 --- a/tests/test_basic_functions.py +++ b/tests/test_basic_functions.py @@ -94,7 +94,7 @@ def move_and_test(env, destination, movable, expected_speed, expected_time): start = env.now env.process(movable.move(destination)) env.run() - np.testing.assert_almost_equal(movable.current_speed, expected_speed) + np.testing.assert_almost_equal(movable.v, expected_speed) assert movable.geometry.equals(destination.geometry) hours_spent = (env.now - start) / 3600 np.testing.assert_almost_equal(hours_spent, expected_time, decimal=2) From 3df890b2b90c81649899a6475034bbbf03ff25ed Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 3 Feb 2023 11:40:27 +0100 Subject: [PATCH 018/100] implement separation between moving over geometries and moving over note based routes --- src/openclsim/core/movable.py | 74 ++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 0f4aea74..4a0aa9dc 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -1,14 +1,28 @@ """Component to move the simulation objects.""" import logging +from typing import List import warnings + import shapely.geometry +import pyproj from .container import HasContainer, HasMultiContainer from .locatable import Locatable from .log import LogState from .simpy_object import SimpyObject +# can be removed if we switch to python>=3.10 +try: + from itertools import pairwise +except ImportError: + def pairwise(iterable): + # pairwise('ABCDEFG') --> AB BC CD DE EF FG + a, b = tee(iterable) + next(b, None) + return zip(a, b) + + logger = logging.getLogger(__name__) @@ -183,21 +197,51 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # call functions when passing edges self.on_pass_edge_functions = [] + self.wgs84 = pyproj.Geod(ellps="WGS84") assert hasattr(self.env, "FG"), "expected graph FG to be available on env" - def pass_edge(self, origin: str, destination: str): - """Pass an edge. The node pair origin destination should be available on the env.graph.""" - edge = self.env.graph.edges[origin, destination] - # get origin and destination geometry - origin_geometry = self.env.graph.nodes[origin]["geometry"] - destination_geometry = self.env.graph.nodes[destination]["geometry"] - edge_geometry = edge["geometry"] - print( - "check if we need to reorder", - edge_geometry, - origin_geometry, - destination_geometry, - ) + def move_to_geometry(self, geometry: shapely.geometry.Point): + """move to geometry""" + linestring = shapely.geometry.LineString([self.geometry, geometry]) + distance = self.wgs84.geometry_length(edge_geometry) + duration = self.v * distance + yield self.env.timeout(duration) + self.geometry = geometry - for on_pass_edge_function in self.on_pass_edge_functions: - on_pass_edge_function(origin, destination) + def pass_linestring(self, geometry): + """Pass an edge. The node pair origin destination should be available on the env.graph.""" + assert isinstance(geometry, shapely.geometry.LineString) + distance = self.wgs84.geometry_length(edge_geometry) + duration = self.v * distance + yield self.env.timeout(duration) + self.geometry = destination_geometry + + + @staticmethod + def order_geometry(geometry: shapely.geometry.LineString, a: shapely.geometry.Point): + """Make sure the linestring starts at a. If the end of the linestring is closer to a than the start, the linestring is inverted.""" + start = shapely.geometry.Point(*geometry.coords[0]) + end = shapely.geometry.Point(*geometry.coords[-1]) + _, _, distance_from_start = self.wgs84.inv(start.x, start.y, a.x, a.y) + _, _, distance_from_end = self.wgs84.inv(end.x, end.y, a.x, a.y) + if distance_from_start > distance_from_end: + coords = np.flipud(np.array(geometry.coords)) + else: + coords = geometry.coords + new_geometry = shapely.geometry.LineString(coords) + return new_geometry + + def move_over_route(self, route: List[str]): + """sail over the route, a list of nodes""" + a = route[0] + a_geometry = self.graph.nodes[a]['geometry'] + yield from self.move_to_geometry(a_geometry) + for i, (a, b) in enumerate(pairwise(route)): + a_geometry = self.graph[a]['geometry'] + b_geometry = self.graph[b]['geometry'] + edge_geometry = self.graph[(a, b)]['geometry'] + # make sure we are in the right order + edge_geometry = self.order_geometry(edge_geometry) + yield from self.pass_linestring(edge_geometry) + for pass_edge_function in self.pass_edge_function: + yield pass_edge_function(ship=self, a=a, b=b, route=route, geometry=geometry) From b550284646e294a404221e90cd35e573efa90329 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 13 Feb 2023 15:13:46 +0100 Subject: [PATCH 019/100] rename --- src/openclsim/core/movable.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 4a0aa9dc..b7bdd28e 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -100,7 +100,7 @@ def v(self): @property def current_speed(self): warnings.warn( - "The property `.currentspeed` is deprected. Use `.v` instead.", + "The property `.current_speed` is deprected. Use `.v` instead.", DeprecationWarning, ) return self.v @@ -142,9 +142,9 @@ def v(self): ) @property - def currentspeed(self): + def current_speed(self): warnings.warn( - "The property `.currentspeed` is deprected. Use `.v` instead.", + "The property `.current_speed` is deprected. Use `.v` instead.", DeprecationWarning, ) return self.v @@ -182,9 +182,9 @@ def v(self): return self.compute_v(fill_degree) @property - def currentspeed(self): + def current_speed(self): warnings.warn( - "The property `.currentspeed` is deprected. Use `.v` instead.", + "The property `.current_speed` is deprected. Use `.v` instead.", DeprecationWarning, ) return self.v From 74a7341f836992959af50565f6918bd59021b0f3 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 13 Feb 2023 16:08:52 +0100 Subject: [PATCH 020/100] missing dep --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index baca0dbd..fa226893 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,6 +37,7 @@ install_requires = plotly matplotlib networkx + Deprecated [options.packages.find] where = src From d145eb3ef08122d058e1011671afabbff5907c88 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 17 Feb 2023 15:52:00 +0100 Subject: [PATCH 021/100] notebook for opentnsim + openclsim with opentnsim moving and openclsim for everything else --- notebooks/32_openclsim_opentnsim_moving.ipynb | 405 ++++++++++++++++++ 1 file changed, 405 insertions(+) create mode 100644 notebooks/32_openclsim_opentnsim_moving.ipynb diff --git a/notebooks/32_openclsim_opentnsim_moving.ipynb b/notebooks/32_openclsim_opentnsim_moving.ipynb new file mode 100644 index 00000000..b99ce262 --- /dev/null +++ b/notebooks/32_openclsim_opentnsim_moving.ipynb @@ -0,0 +1,405 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "014edd2c", + "metadata": {}, + "source": [ + "# Combining OpenCLSim and OpenTNSim\n", + "\n", + "This notebook shows how to combine elements from OpenCLSim and OpenTNSim. You need OpenTNSim>=1.3.0 and OpenCLSim>=1.6 for this notebook to work. Since that version the core components (locatable, identifiable, simpyobject) of opentnsim are referring to the versions from OpenCLSim. \n", + "\n", + "In this notebook we show how to use the \"move\" functionality of OpenTNSim with the activity workflow from OpenCLSim.\n", + "OpenCLSim does not allow sailing over graphs by default. OpenTNSim does not have the concept of activities. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "bf80dcb5", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "import time\n", + "\n", + "import simpy\n", + "import pandas as pd\n", + "import shapely\n", + "\n", + "import openclsim\n", + "import openclsim.model\n", + "import opentnsim\n", + "import networkx as nx\n" + ] + }, + { + "cell_type": "markdown", + "id": "93ae47bf", + "metadata": {}, + "source": [ + "# Create a simulation environment\n", + "This environment is shared between OpenCLSim & OpenTNSim through the `openclsim.core.SimpyObject`. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "21a191b6", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_start = 0\n", + "env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "4e5a5aba", + "metadata": {}, + "source": [ + "# Create sites and create a network\n", + "\n", + "Here we'll combine the site (OpenCLSim) and graph (OpenTNSim) properties from both models. OpenTNSim has the concept of a graph, but does not use sites. We specify the site using OpenCLSim components. We create a route and graph using networkx and shapely as expected by OpenTNSim.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "52318fab", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "id": "c0b02f28", + "metadata": {}, + "source": [ + "## Create the points and geometries\n", + "In OpenTNSim nodes are points, you can sail over a linestring between points. Here we add an extra point in between the form and to location. That way you can sail more complex routes than just great circles. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "cafedd1f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# prepare input data for from_site (note: in this example we only need the start location)\n", + "location_from_site = shapely.geometry.Point(4.18055556, 52.18664444)\n", + "\n", + "# prepare input data for to_site\n", + "location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + "\n", + "# create a geometry in between\n", + "intermediate_point = shapely.geometry.Point(4.2, 52.14)\n", + "# Line of 3 points\n", + "edge_geometry = shapely.geometry.LineString([location_from_site, intermediate_point, location_to_site])\n", + "edge_geometry" + ] + }, + { + "cell_type": "markdown", + "id": "c91a813e", + "metadata": {}, + "source": [ + "## Create the OpenCLSim sites\n", + "OpenCLSim ships always sail between sites. At each site it typically has to do something, like wait for a resource or fill a container. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b2ee2d9a", + "metadata": {}, + "outputs": [], + "source": [ + "# The from site\n", + "data_from_site = {\n", + " \"env\": env,\n", + " \"name\": \"from_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + "}\n", + "# instantiate to_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# We only need to define the to_site as an instance for OpenCLSim\n", + "data_to_site = {\n", + " \"env\": env,\n", + " \"name\": \"to_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "markdown", + "id": "e951c4f8", + "metadata": {}, + "source": [ + "## Create the OpenTNSim graph\n", + "OpenTNSim has the concept of a graph. It sails between nodes, over edges. Each node and edge is expected to have a geometry. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3e4a3b86", + "metadata": {}, + "outputs": [], + "source": [ + "graph = nx.Graph()\n", + "\n", + "# create a location based graph (with geometry as nodes)\n", + "graph.add_node(from_site.name, geometry=from_site.geometry)\n", + "graph.add_node(to_site.name, geometry=to_site.geometry)\n", + "graph.add_edge(from_site.name, to_site.name, geometry=edge_geometry)\n", + "\n", + "env.graph = graph" + ] + }, + { + "cell_type": "markdown", + "id": "1234d4bc", + "metadata": {}, + "source": [ + "## Define the vessel\n", + "Here we start to integrate OpenCLSim and OpenTNSim. We make a composed type of Movable and the OpenCLSim components that allow to move and transport goods (container, processor). " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "3be50ba8", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "564a50d5", + "metadata": {}, + "source": [ + "## Instantiate the vessel\n", + "We can now make the vessel. Compared to a normal OpenCLSim route we have an extra route property." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bed66786", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": env,\n", + " \"name\": \"vessel-01\",\n", + " \"geometry\": location_from_site, \n", + " \"capacity\": 5,\n", + " \"v\": 10,\n", + " \"route\": [from_site.name, to_site.name]\n", + "}\n", + "# instantiate vessel \n", + "vessel = TransportProcessingResource(**data_vessel01)\n", + "assert not vessel.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "685a5b9f", + "metadata": {}, + "source": [ + "## Setup the simulation\n", + "We can now have all the elements from the simulation. We can setup the regular OpenCLSim housekeeping." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "34f963b3", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "88cabb7c", + "metadata": {}, + "outputs": [], + "source": [ + "activity = openclsim.model.MoveActivity(\n", + " env=env,\n", + " name=\"Move activity\",\n", + " registry=registry,\n", + " mover=vessel,\n", + " destination=to_site,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "485057d1", + "metadata": {}, + "outputs": [], + "source": [ + "# initate the simpy processes defined in the 'move activity' and run simpy\n", + "openclsim.model.register_processes([activity])\n", + "env.run()" + ] + }, + { + "cell_type": "markdown", + "id": "9b8cc0e7", + "metadata": {}, + "source": [ + "## Show the results\n", + "We can now display how long it took. It should take more than 15min. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "44e6f1a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityState
091436857-3045-49d8-b95b-6772669f6f111970-01-01 00:00:00.000000START
191436857-3045-49d8-b95b-6772669f6f111970-01-01 00:32:16.644459STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\n", + "0 91436857-3045-49d8-b95b-6772669f6f11 1970-01-01 00:00:00.000000 \n", + "1 91436857-3045-49d8-b95b-6772669f6f11 1970-01-01 00:32:16.644459 \n", + "\n", + " ActivityState \n", + "0 START \n", + "1 STOP " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(activity))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 789fc73127a612216a25ab2738eaa9a87ffccd71 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 22 Feb 2023 15:35:38 +0100 Subject: [PATCH 022/100] add demo of dredging with routing --- notebooks/33_Accessibility_Dredging.ipynb | 652 ++++++++++++++++++++++ 1 file changed, 652 insertions(+) create mode 100644 notebooks/33_Accessibility_Dredging.ipynb diff --git a/notebooks/33_Accessibility_Dredging.ipynb b/notebooks/33_Accessibility_Dredging.ipynb new file mode 100644 index 00000000..dbacc935 --- /dev/null +++ b/notebooks/33_Accessibility_Dredging.ipynb @@ -0,0 +1,652 @@ +{ + "cells": [ + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABtUAAAKqCAYAAABFHtH9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAP+lSURBVHhe7N0FeBTX2wXwxWkpLdT+VKC0RYK7BUnQYMEdglM0uLsT3K24O8EdgltpoRQpUoImhLiQQGlzvnuHvfmG7e4mGwIky/k9fZ9NZmdH7kwy5J7eGYNNvJDWsC2kicEzeKRhW+he8bWXqChRYLFYLBYrAUpeV7wM20MniNdOhl0RmYxXICIiIiIiIiIiIqIkwDO4jmFbiKexw5PFYrFYrLdZF0V10v7HDiIiIiIiIiIiIqJEyTPY2bAt5IyuY5PFYrFYrHdVvuK61Np4hSIiIiIiIiIiIiJKJLRbPP63U7OgVzhGXI/CXr8X8PJ/Ad9n0SAiInpdwX9Ha9cVWRNuPkOdc0//cw0ylidHrREREREREREREdG75xmcQeuwNOnEbP1bJLyf/mvs+iQiInrzZNAm/0eODLtDX7kmibqoXa+IiIiIiIiIiIiI3hmTQM35ZATDNCIieqdkuNbp9yh9qCbrDEesERERERERERER0buxPXSCvsNSdmBGMU8jIqJEYvrtZ/pQDeK6tc54BSMiIiIiIiIiIiJ6S7aHVNV3VMpAjYiIKLGZ7/381WBtW0gn45WMiIiIiIiIiIiI6C2Qz6cxdlDKWz5yhBoRESVWPf945VaQvny+GhEREREREREREb0dnsF1VOdk2p2h8H0Wbey2JCIiSnzk//iRaV+YPlibbryiEREREREREREREb1B20K8VMek/L//iYiIErt1D//Wh2pRBi+kNV7ViIiIiIiIiIiIiN4Aecus/++U5Cg1IiJKMrIe0I1Wk88GJSIiIiIiIiIiInpjPINbqw5J+Sw1IiKipMLk2Wq8BSQRERERERERERG9QdtClqkOyem3nxm7KYmIiBI/L/8X+lDtjPHKRkRERERERERERPQGbAvdqzok9/q9MHZTEhERJX7ylsW6UM3beGUjIiIiIiIiIiIiegO2hVxXHZLXw/81dlMSERElDeoaphURERERERERERHRG7MtJEp1Rgb/HW3soiQiIkoa0u4MZahGREREREREREREb4HqiBRFRESU1OivY8YrGxEREREREREREdEboOuMJCIiSmr01zHj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" + } + }, + "cell_type": "markdown", + "id": "0f8c41d2", + "metadata": {}, + "source": [ + "# Harbour traffic problem\n", + "This notebook is developed to address the interference between dredging vessels and container vessels in a certain berth area. Therefore, the berth area is served by both dredging and container vessels.\n", + "\n", + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "id": "925c02db", + "metadata": {}, + "source": [ + "## 0. Imports" + ] + }, + { + "cell_type": "markdown", + "id": "d5ca66d8", + "metadata": {}, + "source": [ + "We start importing the required libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f309f38", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx \n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime, time\n", + "import simpy\n", + "import openclsim\n", + "import opentnsim\n", + "\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "markdown", + "id": "13097253", + "metadata": {}, + "source": [ + "## 1. Initialize simpy environment" + ] + }, + { + "cell_type": "markdown", + "id": "7c0a7d83", + "metadata": {}, + "source": [ + "The simpy environment is initialized and a single environment is used for both OpenCLSim and OpenTNSim." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "651c0a4c", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "47c1b768", + "metadata": {}, + "source": [ + "### 1.1. Create graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "342c006e", + "metadata": {}, + "outputs": [], + "source": [ + "# we start with creating a graph \n", + "graph = nx.DiGraph()\n", + "\n", + "# make your preferred Site class out of available mix-ins which is a combination of mixins from OpenCLSim and OpenTNSim.\n", + "Location = type('Site',\n", + " (openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,), {})\n", + "\n", + "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", + "# based on the mixins, more attributes are defined for each location.\n", + "locations = []\n", + "\n", + "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore = {\"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_offshore))\n", + "offshore = Location(**data_offshore)\n", + "\n", + "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", + "data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_berth))\n", + "berth = Location(**data_berth)\n", + "\n", + "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", + "data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + " }\n", + "locations.append(Location(**data_dump))\n", + "dump = Location(**data_dump) \n", + " \n", + "# a graph is initiated based on the name and gemometry of locations.\n", + "# other attributes such as store_capacity and initials are not being used for drawing the graph.\n", + "for location in locations:\n", + " graph.add_node(location.name,\n", + " geometry = location.geometry)\n", + " \n", + "# add edges\n", + "path = [[locations[i], locations[i+1]] for i in range(len(locations)-1)]\n", + "\n", + "for index, edge in enumerate(path):\n", + " graph.add_edge(edge[0].name, edge[1].name, weight = 1)\n", + " \n", + "# toggle to undirected and back to directed to make sure all edges are two way traffic\n", + "graph = graph.to_undirected() \n", + "graph = graph.to_directed()\n", + "\n", + "# create a positions dict for the purpose of plotting\n", + "positions = {}\n", + "for location in graph.nodes:\n", + " positions[location] = (graph.nodes[location]['geometry'].x, graph.nodes[location]['geometry'].y)\n", + " \n", + "# collect node labels.\n", + "labels = {}\n", + "for location in graph.nodes:\n", + " labels[location] = location\n", + "print('Number of edges is {}'.format(len(graph.edges)))\n", + "\n", + "# draw edges, nodes and labels.\n", + "nx.draw_networkx_edges(graph, pos=positions, width=3, edge_color=\"red\", alpha=1, arrowsize=40)\n", + "nx.draw_networkx_nodes(graph, pos=positions, node_color=\"darkblue\", node_size=1500)\n", + "nx.draw_networkx_labels(graph, pos=positions, labels=labels, font_size=8, font_weight='bold', font_color=\"white\")\n", + "\n", + "plt.axis(\"off\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7497055", + "metadata": {}, + "outputs": [], + "source": [ + "# add a graph to the environment\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5065dad1", + "metadata": {}, + "outputs": [], + "source": [ + "m = folium.Map(location=[52.66, 4.43], zoom_start=8)\n", + "\n", + "folium.Marker(\n", + " [location_dump.y, location_dump.x ], \n", + " popup=\"Dump\", \n", + " tooltip=\"Dump\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_offshore.y, location_offshore.x ], \n", + " popup=\"Offshore\", \n", + " tooltip=\"Offshore\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_berth.y, location_berth.x ], \n", + " popup=\"Berth\", \n", + " tooltip=\"Berth\"\n", + ").add_to(m)\n", + "\n", + "m" + ] + }, + { + "cell_type": "markdown", + "id": "94c9d59b", + "metadata": {}, + "source": [ + "## 2. OpenCLSim - dredging process\n", + "Derived from:\n", + "http://localhost:8888/notebooks/OpenCLSim/notebooks/32_openclsim_opentnsim.ipynb" + ] + }, + { + "cell_type": "markdown", + "id": "07e8f8b9", + "metadata": {}, + "source": [ + "#### 2.1 Initialise objects" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "387db4f8", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "Vessel_obj = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " openclsim.core.LoadingFunction,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "f54fe41d", + "metadata": {}, + "source": [ + "#### 2.2 Create sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e1f53375", + "metadata": {}, + "outputs": [], + "source": [ + "# example of how to find a location from the list of locations, based on a name \n", + "[i for i, x in enumerate(locations) if x.name == 'offshore'][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "faa6445d", + "metadata": {}, + "outputs": [], + "source": [ + "# data from_site\n", + "name = \"berth\"\n", + "data_from_site = {\n", + " \"env\": my_env,\n", + " \"name\": name,\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100\n", + "}\n", + "# instantiate from_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# data to_site\n", + "name = \"dump\"\n", + "data_to_site = {\n", + " \"env\": my_env,\n", + " \"name\": name,\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "markdown", + "id": "769b185f", + "metadata": {}, + "source": [ + "#### 2.3 Create vessels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4c3ddfa", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "start_location = \"berth\"\n", + "\n", + "offshore_start_location = shapely.geometry.Point(3.3597304, 52.4400985)\n", + "\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging vessel\",\n", + " \"geometry\": offshore_start_location, \n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 5,\n", + " \"capacity\": 10,\n", + " \"v\": 10,\n", + " \"route\": nx.dijkstra_path(my_env.graph, 'berth', 'dump')\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = Vessel_obj(**data_vessel01)\n", + "# assert not vessel01.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "2dd28d32", + "metadata": {}, + "source": [ + "#### 2.4 Create activities" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd2aa7de", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d586e52b", + "metadata": {}, + "outputs": [], + "source": [ + "# create a 'while activity' that contains a pre-packed set of 'sub_processes'\n", + "single_run, while_activity = openclsim.model.single_run_process(\n", + " name=\"single_run\",\n", + " registry={},\n", + " env=my_env,\n", + " origin=berth,\n", + " destination=dump,\n", + " mover=vessel01,\n", + " loader=vessel01,\n", + " unloader=vessel01\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0039485e", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.model.register_processes([while_activity])" + ] + }, + { + "cell_type": "markdown", + "id": "9b5b235c", + "metadata": {}, + "source": [ + "## 3. OpenTNSim - port process" + ] + }, + { + "cell_type": "markdown", + "id": "fe93715c", + "metadata": {}, + "source": [ + "#### 3.2. Create vessel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7820375", + "metadata": {}, + "outputs": [], + "source": [ + "# # define a path into and out of the habour\n", + "# path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", + "# path2 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore')\n", + "# path = path1+path2[1:]\n", + "# display(path)\n", + "\n", + "# # prepare input data for vessel_02\n", + "# start_location = \"offshore\"\n", + "# data_vessel02 = {\n", + "# \"env\": my_env,\n", + "# \"name\": \"seagoing vessel\",\n", + "# \"geometry\": location_offshore, \n", + "# \"capacity\": 10,\n", + "# \"v\": 10,\n", + "# \"route\": path}\n", + "\n", + "# # instantiate vessel_02 \n", + "# vessel02 = Vessel_obj(**data_vessel02)\n", + "# assert not vessel02.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "74712deb", + "metadata": {}, + "source": [ + "#### 3.3. Create the vessel activity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "edefaf5e", + "metadata": {}, + "outputs": [], + "source": [ + "# specify the process that needs to be executed\n", + "# my_env.process(vessel02.move())" + ] + }, + { + "cell_type": "markdown", + "id": "740ee870", + "metadata": {}, + "source": [ + "### 4, Run the simulation\n", + "Will execute all prepared activities (as specified in 2.4 (OpenCLSim) and 3.3 (OpenTNSim))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f03a6c5", + "metadata": {}, + "outputs": [], + "source": [ + "single_run" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cdfb07a6", + "metadata": {}, + "outputs": [], + "source": [ + "move_activity = single_run[0]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22584049", + "metadata": {}, + "outputs": [], + "source": [ + "shift_amount_activity = single_run[1]\n", + "shift_amount_activity.processor.name\n", + "shift_amount_activity.processor.geometry.wkt\n", + "shift_amount_activity.processor.log\n", + "shift_amount_activity.processor.geometry.wkt, shift_amount_activity.destination.geometry.wkt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7571a7a", + "metadata": {}, + "outputs": [], + "source": [ + "dump_activity = single_run[3]\n", + "dump_activity.processor.geometry.wkt, dump_activity.origin.geometry.wkt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "702f89e7", + "metadata": {}, + "outputs": [], + "source": [ + "# start the simulation\n", + "my_env.run()" + ] + }, + { + "cell_type": "markdown", + "id": "a961e82d", + "metadata": {}, + "source": [ + "### 5. Inspect the results" + ] + }, + { + "cell_type": "markdown", + "id": "68e2337a", + "metadata": {}, + "source": [ + "#### 5.1 The OpenCLSim components" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0afdc95c", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "display(openclsim.plot.get_log_dataframe(vessel01, [*single_run, while_activity]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55bb86b3", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.plot.get_gantt_chart([while_activity, vessel01, *single_run])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9051bca5", + "metadata": {}, + "outputs": [], + "source": [ + "fig = openclsim.plot.get_step_chart([berth, dump, vessel01])" + ] + }, + { + "cell_type": "markdown", + "id": "5d0021d2", + "metadata": {}, + "source": [ + "#### 5.1 The OpenTNSim components" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c8be2e2d", + "metadata": {}, + "outputs": [], + "source": [ + "vessel02.log" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a13c791", + "metadata": {}, + "outputs": [], + "source": [ + "# note the slightly different log handling than for the openclsim elemnents\n", + "df = pd.DataFrame.from_dict(vessel02.log)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6d8b60a9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "vscode": { + "interpreter": { + "hash": "467690b349221dc2aa421ef548b970b1093cce4037f28fe6b032bbac888fe15e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 647166fb9810490b8c4afc064715a5039344ac30 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Tue, 28 Feb 2023 20:44:59 +0100 Subject: [PATCH 023/100] add opentnsim compatible log entry functions --- src/openclsim/core/log.py | 35 +++++++++++- src/openclsim/core/movable.py | 60 +++++++++++--------- src/openclsim/core/processor.py | 8 +-- src/openclsim/model/base_activities.py | 12 ++-- src/openclsim/model/basic_activity.py | 8 +-- src/openclsim/model/move_activity.py | 10 +++- src/openclsim/model/parallel_activity.py | 8 +-- src/openclsim/model/sequential_activity.py | 8 +-- src/openclsim/model/shift_amount_activity.py | 8 ++- src/openclsim/model/while_activity.py | 6 +- 10 files changed, 104 insertions(+), 59 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 25e80073..7e71e331 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -2,6 +2,8 @@ import datetime from enum import Enum +import deprecation + from .simpy_object import SimpyObject @@ -25,6 +27,7 @@ class Log(SimpyObject): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" + # record oriented list of log messages self.log = { "Timestamp": [], "ActivityID": [], @@ -33,7 +36,16 @@ def __init__(self, *args, **kwargs): "ActivityLabel": [], } - def log_entry( + @property + def log(self): + """return the log in log format""" + df = pd.DataFrame(self.logbook) + # Convert table to this format: + # {'a': [1, 2], 'b': [2, 4]} + list_format = df.to_dict(orient='list') + return list_format + + def log_entry_v1( self, t, activity_id, @@ -41,6 +53,7 @@ def log_entry( additional_state=None, activity_label=None, ): + """Log an entry (openclsim version)""" object_state = self.get_state() if additional_state: object_state.update(additional_state) @@ -59,6 +72,22 @@ def log_entry( self.log["ObjectState"].append(object_state) self.log["ActivityLabel"].append(activity_label) + def log_entry_v0(self, log, t, value, geometry_log): + """Log an entry (opentnsim version)""" + self.log["Message"].append(log) + self.log["Timestamp"].append(datetime.datetime.fromtimestamp(t)) + self.log["Value"].append(value) + self.log["Geometry"].append(geometry_log) + + @deprecation.deprecated(details="Use .log_entry_v0 instead") + def log_entry(self, *args, **kwargs): + """Backward compatible log_entry. Calls the opentnsim variant.""" + assert len(args) >= 2 or 't' in kwargs, 'Expected t as second argument or as named argument' + t_argument = kwargs.get('t', args[1]) + assert isinstance(t_argument, datetime.datetime), 'Expected t of type: datetime.datetime' + self.log_entry_v0(*args, **kwargs) + + def get_state(self): """ empty instance of the get state function. @@ -66,7 +95,11 @@ def get_state(self): Add an empty instance of the get state function so that it is always available. """ + state = {} if hasattr(super(), "get_state"): state = super().get_state() return state + + + diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index b7bdd28e..cb41c7b3 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -26,18 +26,6 @@ def pairwise(iterable): logger = logging.getLogger(__name__) -class Routable(SimpyObject): - """Mixin class: Something with a route (networkx node list format) - - - route: list of node-IDs - - - """ - - def __init__(self, route, *args, **kwargs): - super().__init__(*args, **kwargs) - self.route = route - - class Movable(SimpyObject, Locatable): """ Movable class. @@ -47,15 +35,17 @@ class Movable(SimpyObject, Locatable): Parameters ---------- - v: speed + v: speed (1d) + engine_order: factor that determines how much of the speed is used. """ - def __init__(self, v: float = 1, *args, **kwargs): + def __init__(self, v: float = 1, engine_order: float = 1, *args, **kwargs): super().__init__(*args, **kwargs) - """Initialization""" + """""" self._v = v + self.engine_order = 1 - def move(self, destination=None, engine_order=1.0, duration=None): + def move(self, destination: Locatable = None, duration: float = None): """ Determine distance between origin and destination. @@ -66,7 +56,7 @@ def move(self, destination=None, engine_order=1.0, duration=None): raise ValueError("Movable in OpenCLSim does not support empty destination") # Log the start event - self.log_entry( + self.log_entry_v1( self.env.now, self.activity_id, LogState.START, @@ -74,20 +64,21 @@ def move(self, destination=None, engine_order=1.0, duration=None): # Determine the sailing_duration if duration is not None: - sailing_duration = duration + duration = duration else: - sailing_duration = self.sailing_duration( - self.geometry, destination, engine_order + duration = self.duration( + self.geometry, destination ) # Check out the time based on duration of sailing event - yield self.env.timeout(sailing_duration) + yield self.env.timeout(duration) # Set mover geometry to destination geometry + print('updating to destination geometry', destination.geometry) self.geometry = shapely.geometry.shape(destination.geometry) # Log the stop event - self.log_entry( + self.log_entry_v1( self.env.now, self.activity_id, LogState.STOP, @@ -95,7 +86,8 @@ def move(self, destination=None, engine_order=1.0, duration=None): @property def v(self): - return self._v + """return the velocity * engine_order""" + return self._v * self.engine_order @property def current_speed(self): @@ -105,12 +97,17 @@ def current_speed(self): ) return self.v - def sailing_duration(self, origin, destination, engine_order, verbose=True): - """Determine the sailing duration.""" + @staticmethod + def distance(origin, destination): + """Determine the sailing distance based on great circle path from origin to destination.""" orig = shapely.geometry.shape(self.geometry) dest = shapely.geometry.shape(destination.geometry) _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) + return distance + def duration(self, origin, destination, engine_order, verbose=True): + """Determine the duration based on great circle path from origin to destination.""" + distance = self.distance(origin, destination) return distance / (self.v * engine_order) @@ -189,13 +186,20 @@ def current_speed(self): ) return self.v +class Navigator: + def find_route(waypoints): + route = [] + return route -class CanSailOnGraph(Routable, Movable): - """Mixin class: Allows to move over nodes on a graph""" +class Routable(SimpyObject): + """Mixin class: Something with a route (networkx node list format) + route: a list of node ids (available on env.graph) or geometries (shapely.Geometry) + """ - def __init__(self, *args, **kwargs): + def __init__(self, route: list, *args, **kwargs): super().__init__(*args, **kwargs) # call functions when passing edges + self.route = route self.on_pass_edge_functions = [] self.wgs84 = pyproj.Geod(ellps="WGS84") assert hasattr(self.env, "FG"), "expected graph FG to be available on env" diff --git a/src/openclsim/core/processor.py b/src/openclsim/core/processor.py index ff2c5ec7..48715cb8 100644 --- a/src/openclsim/core/processor.py +++ b/src/openclsim/core/processor.py @@ -52,7 +52,7 @@ def process( # Log the process for all parts for location in set([self, origin, destination]): - location.log_entry( + location.log_entry_v1( t=location.env.now, activity_id=self.activity_id, activity_state=LogState.START, @@ -82,7 +82,7 @@ def process( # Log the process for all parts for location in set([self, origin, destination]): - location.log_entry( + location.log_entry_v1( t=location.env.now, activity_id=self.activity_id, activity_state=LogState.STOP, @@ -117,7 +117,7 @@ def check_possible_shift( # If the amount is not available in the origin, log waiting if start_time != end_time: - self.log_entry( + self.log_entry_v1( t=start_time, activity_id=self.activity_id, activity_state=LogState.WAIT_START, @@ -126,7 +126,7 @@ def check_possible_shift( "ref": f"waiting {obj.name} content", }, ) - self.log_entry( + self.log_entry_v1( t=end_time, activity_id=self.activity_id, activity_state=LogState.WAIT_STOP, diff --git a/src/openclsim/model/base_activities.py b/src/openclsim/model/base_activities.py index e1edd7c0..2ea3b5eb 100644 --- a/src/openclsim/model/base_activities.py +++ b/src/openclsim/model/base_activities.py @@ -96,14 +96,14 @@ def post_process(self, *args, **kwargs): yield from item["plugin"].post_process(*args, **kwargs) def delay_processing(self, env, activity_label, activity_log, waiting): - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_START, activity_label=activity_label, ) yield env.timeout(waiting) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_STOP, @@ -240,13 +240,13 @@ def delayed_process( if env.now > start_time: # log start - activity_log.log_entry( + activity_log.log_entry_v1( t=start_time, activity_id=activity_log.id, activity_state=core.LogState.WAIT_START, ) for log in additional_logs: - log.log_entry( + log.log_entry_v1( t=start_time, activity_id=activity_log.id, activity_state=core.LogState.WAIT_START, @@ -257,13 +257,13 @@ def delayed_process( ) # log stop - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_STOP, ) for log in additional_logs: - log.log_entry( + log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.WAIT_STOP, diff --git a/src/openclsim/model/basic_activity.py b/src/openclsim/model/basic_activity.py index 6a2d2fe0..001f3f72 100644 --- a/src/openclsim/model/basic_activity.py +++ b/src/openclsim/model/basic_activity.py @@ -74,7 +74,7 @@ def main_process_function(self, activity_log, env): start_basic = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -82,7 +82,7 @@ def main_process_function(self, activity_log, env): if isinstance(self.additional_logs, list) and len(self.additional_logs) > 0: for log_item in self.additional_logs: - log_item.log_entry( + log_item.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -94,12 +94,12 @@ def main_process_function(self, activity_log, env): yield env.timeout(self.duration) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP ) if isinstance(self.additional_logs, list) and len(self.additional_logs) > 0: for log_item in self.additional_logs: - log_item.log_entry( + log_item.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/move_activity.py b/src/openclsim/model/move_activity.py index cb8301f1..91826707 100644 --- a/src/openclsim/model/move_activity.py +++ b/src/openclsim/model/move_activity.py @@ -81,6 +81,8 @@ def main_process_function(self, activity_log, env): speed the mover should sail. for example, engine_order=0.5 corresponds to sailing at 50% of max speed """ + + print('mover', self.mover.name, 'destination', self.destination.name) yield from self._request_resource(self.requested_resources, self.mover.resource) start_time = env.now @@ -91,7 +93,7 @@ def main_process_function(self, activity_log, env): } yield from self.pre_process(args_data) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -104,8 +106,10 @@ def main_process_function(self, activity_log, env): engine_order=self.engine_order, duration=self.duration, ) + print('mover', self.mover.name, 'is now at', self.mover.geometry.wkt) + - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -118,3 +122,5 @@ def main_process_function(self, activity_log, env): self._release_resource( self.requested_resources, self.mover.resource, self.keep_resources ) + + print('mover', self.mover.name, 'is now at', self.mover.geometry.wkt) diff --git a/src/openclsim/model/parallel_activity.py b/src/openclsim/model/parallel_activity.py index 07231002..6413c107 100644 --- a/src/openclsim/model/parallel_activity.py +++ b/src/openclsim/model/parallel_activity.py @@ -40,7 +40,7 @@ def main_process_function(self, activity_log, env): start_time_parallel = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -51,7 +51,7 @@ def main_process_function(self, activity_log, env): stop_events = [] subprocess_ids = [] for sub_process in self.sub_processes: - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -75,7 +75,7 @@ def main_process_function(self, activity_log, env): while i < len(stop_events): if self.parse_expression(stop_events[i]).triggered is True: stop_events.pop(i) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -87,7 +87,7 @@ def main_process_function(self, activity_log, env): else: i += 1 - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/sequential_activity.py b/src/openclsim/model/sequential_activity.py index 3aad3dbf..cb9b1f91 100644 --- a/src/openclsim/model/sequential_activity.py +++ b/src/openclsim/model/sequential_activity.py @@ -40,7 +40,7 @@ def main_process_function(self, activity_log, env): start_sequence = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -49,7 +49,7 @@ def main_process_function(self, activity_log, env): self.start_sequence.succeed() for sub_process in self.sub_processes: - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -70,7 +70,7 @@ def main_process_function(self, activity_log, env): ) yield stop_event - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -80,7 +80,7 @@ def main_process_function(self, activity_log, env): }, ) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/shift_amount_activity.py b/src/openclsim/model/shift_amount_activity.py index 04b9030a..29c3c0df 100644 --- a/src/openclsim/model/shift_amount_activity.py +++ b/src/openclsim/model/shift_amount_activity.py @@ -68,7 +68,9 @@ def __init__( def main_process_function(self, activity_log, env): """Origin and Destination are of type HasContainer.""" - assert self.processor.is_at(self.origin) + print('processing shift amount', 'processor', self.processor.name, 'origin', self.origin.name) + msg = f"Processor {self.processor.name} is at {self.processor.geometry.wkt}. But we expect to shift an amount from the origin location ({self.origin.name}) at {self.origin.geometry.wkt}" + assert self.processor.is_at(self.origin), msg assert self.destination.is_at(self.origin) yield from self._request_resource( @@ -138,7 +140,7 @@ def main_process_function(self, activity_log, env): } yield from self.pre_process(args_data) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -151,7 +153,7 @@ def main_process_function(self, activity_log, env): activity_id=activity_log.id, ) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, diff --git a/src/openclsim/model/while_activity.py b/src/openclsim/model/while_activity.py index 0ae01946..80cbd1b6 100644 --- a/src/openclsim/model/while_activity.py +++ b/src/openclsim/model/while_activity.py @@ -31,7 +31,7 @@ def main_process_function(self, activity_log, env): while True: self.start_sequence.succeed() for sub_process in self.sub_processes: - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, @@ -52,7 +52,7 @@ def main_process_function(self, activity_log, env): ) yield stop_event - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -80,7 +80,7 @@ def main_process_function(self, activity_log, env): # Re-add the activities to the simpy environment register_processes(self.sub_processes) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, From 8c429deef3eb07bacf280180a563cae82699f12b Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Tue, 28 Feb 2023 20:50:33 +0100 Subject: [PATCH 024/100] extra asserts for openclsim/opentnsim compatibility --- src/openclsim/core/log.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 7e71e331..57754115 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -28,17 +28,11 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" # record oriented list of log messages - self.log = { - "Timestamp": [], - "ActivityID": [], - "ActivityState": [], - "ObjectState": [], - "ActivityLabel": [], - } + self.logbook = [] @property def log(self): - """return the log in log format""" + """return the log in log format (compatible with old log attribute)""" df = pd.DataFrame(self.logbook) # Convert table to this format: # {'a': [1, 2], 'b': [2, 4]} @@ -54,6 +48,8 @@ def log_entry_v1( activity_label=None, ): """Log an entry (openclsim version)""" + assert isinstance(t, float), "expected t variable of type float" + object_state = self.get_state() if additional_state: object_state.update(additional_state) @@ -66,18 +62,25 @@ def log_entry_v1( assert activity_label.get("type") is not None assert activity_label.get("ref") is not None - self.log["Timestamp"].append(datetime.datetime.utcfromtimestamp(t)) - self.log["ActivityID"].append(activity_id) - self.log["ActivityState"].append(activity_state.name) - self.log["ObjectState"].append(object_state) - self.log["ActivityLabel"].append(activity_label) + entry = { + "Timestamp": datetime.datetime.utcfromtimestamp(t), + "ActivityID": activity_id, + "ActivityState": activity_state.name, + "ObjectState": object_state, + "ActivityLabel": activity_label + } + self.logbook.append(entry) def log_entry_v0(self, log, t, value, geometry_log): """Log an entry (opentnsim version)""" - self.log["Message"].append(log) - self.log["Timestamp"].append(datetime.datetime.fromtimestamp(t)) - self.log["Value"].append(value) - self.log["Geometry"].append(geometry_log) + assert isinstance(log, str), "expected log variable of type string" + entry = { + "Message": log, + "Timestamp": datetime.datetime.fromtimestamp(t), + "Value": value, + "Geometry": geometry_log + } + self.logbook.append(entry) @deprecation.deprecated(details="Use .log_entry_v0 instead") def log_entry(self, *args, **kwargs): From 177b725cf6ae85663c7b4e655d6292dc98915acc Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:21:09 +0100 Subject: [PATCH 025/100] source of module, multiple with same name --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index fa226893..a5e6d60c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,6 +37,7 @@ install_requires = plotly matplotlib networkx + # https://github.com/tantale/deprecated Deprecated [options.packages.find] From f650146fcfc6ceaeb5a06f3b70c49776a0a1c18e Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:21:55 +0100 Subject: [PATCH 026/100] make log modules of opentnsim and openclsim compatible, warn if inconsistencies are found --- src/openclsim/core/log.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 57754115..f1e093b8 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -1,12 +1,14 @@ """Component to log the simulation objects.""" import datetime from enum import Enum +import numbers +import warnings -import deprecation +import deprecated +import pandas as pd from .simpy_object import SimpyObject - class LogState(Enum): """ LogState enumeration of all possible states of a Log object. @@ -39,6 +41,14 @@ def log(self): list_format = df.to_dict(orient='list') return list_format + # decorate the log setter. + # throw a deprecation warning and ignore the setting + @log.setter + def log(self, value): + """set the .log attribute (not allowed, will throw a deprecation warning)""" + warnings.warn(".log property is replaced by record format .logbook", DeprecationWarning) + + def log_entry_v1( self, t, @@ -48,7 +58,7 @@ def log_entry_v1( activity_label=None, ): """Log an entry (openclsim version)""" - assert isinstance(t, float), "expected t variable of type float" + assert isinstance(t, numbers.Number), f"expected t variable of type Number, got {t} of type {type(t)}" object_state = self.get_state() if additional_state: @@ -71,7 +81,7 @@ def log_entry_v1( } self.logbook.append(entry) - def log_entry_v0(self, log, t, value, geometry_log): + def log_entry_v0(self, log, t: numbers.Number, value, geometry_log): """Log an entry (opentnsim version)""" assert isinstance(log, str), "expected log variable of type string" entry = { @@ -82,12 +92,12 @@ def log_entry_v0(self, log, t, value, geometry_log): } self.logbook.append(entry) - @deprecation.deprecated(details="Use .log_entry_v0 instead") + @deprecated.deprecated(reason="Use .log_entry_v0 instead") def log_entry(self, *args, **kwargs): """Backward compatible log_entry. Calls the opentnsim variant.""" assert len(args) >= 2 or 't' in kwargs, 'Expected t as second argument or as named argument' t_argument = kwargs.get('t', args[1]) - assert isinstance(t_argument, datetime.datetime), 'Expected t of type: datetime.datetime' + assert isinstance(t_argument, numbers.Number), f'Expected t of type: Number, got {t_argument} of type: {type(t_argument)}' self.log_entry_v0(*args, **kwargs) From e1e8503c4a905e44aa28b626cce8fd64f2527948 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:22:25 +0100 Subject: [PATCH 027/100] test with opentnsim + openclsim logging --- notebooks/32_openclsim_opentnsim.ipynb | 32 +++++++++++++++++++------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/notebooks/32_openclsim_opentnsim.ipynb b/notebooks/32_openclsim_opentnsim.ipynb index 7fe093b4..b4b4ae91 100644 --- a/notebooks/32_openclsim_opentnsim.ipynb +++ b/notebooks/32_openclsim_opentnsim.ipynb @@ -17,7 +17,10 @@ "import openclsim\n", "import openclsim.model\n", "import opentnsim\n", - "import networkx as nx\n" + "import networkx as nx\n", + "\n", + "import logging\n", + "logging.basicConfig()" ] }, { @@ -36,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 3, "id": "3be50ba8", "metadata": {}, "outputs": [], @@ -109,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "id": "bed66786", "metadata": {}, "outputs": [], @@ -160,7 +163,20 @@ "execution_count": 9, "id": "485057d1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover vessel01 destination to_site\n", + "getting location from to_site\n", + "moving to POINT (4.25222222 52.11428333)\n", + "moving over (, )\n", + "mover vessel01 is now at POINT (4.25222222 52.11428333)\n", + "mover vessel01 is now at POINT (4.25222222 52.11428333)\n" + ] + } + ], "source": [ "# initate the simpy processes defined in the 'move activity' and run simpy\n", "openclsim.model.register_processes([activity])\n", @@ -202,13 +218,13 @@ " \n", " \n", " 0\n", - " 74edfe04-f803-4508-aca0-869c02e835ca\n", + " 7017847c-7178-4b59-bc7d-95ae3bf5ba85\n", " 1970-01-01 00:00:00.000000\n", " START\n", " \n", " \n", " 1\n", - " 74edfe04-f803-4508-aca0-869c02e835ca\n", + " 7017847c-7178-4b59-bc7d-95ae3bf5ba85\n", " 1970-01-01 00:15:42.824591\n", " STOP\n", " \n", @@ -218,8 +234,8 @@ ], "text/plain": [ " Activity Timestamp \\\n", - "0 74edfe04-f803-4508-aca0-869c02e835ca 1970-01-01 00:00:00.000000 \n", - "1 74edfe04-f803-4508-aca0-869c02e835ca 1970-01-01 00:15:42.824591 \n", + "0 7017847c-7178-4b59-bc7d-95ae3bf5ba85 1970-01-01 00:00:00.000000 \n", + "1 7017847c-7178-4b59-bc7d-95ae3bf5ba85 1970-01-01 00:15:42.824591 \n", "\n", " ActivityState \n", "0 START \n", From 2da47cb762148844e8e4d4e2385da86bc58c6622 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:28:41 +0100 Subject: [PATCH 028/100] remove self assignment --- src/openclsim/core/movable.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index cb41c7b3..2fecf1f8 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -63,9 +63,7 @@ def move(self, destination: Locatable = None, duration: float = None): ) # Determine the sailing_duration - if duration is not None: - duration = duration - else: + if duration is None: duration = self.duration( self.geometry, destination ) From 138300a28d56430f1c758db5a47a51d3004f65ac Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:29:54 +0100 Subject: [PATCH 029/100] rename function --- src/openclsim/core/movable.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 2fecf1f8..35c09abf 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -64,7 +64,7 @@ def move(self, destination: Locatable = None, duration: float = None): # Determine the sailing_duration if duration is None: - duration = self.duration( + duration = self.compute_duration( self.geometry, destination ) @@ -103,7 +103,7 @@ def distance(origin, destination): _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) return distance - def duration(self, origin, destination, engine_order, verbose=True): + def compute_duration(self, origin, destination, engine_order, verbose=True): """Determine the duration based on great circle path from origin to destination.""" distance = self.distance(origin, destination) return distance / (self.v * engine_order) From 438cf8d51eebafd6b9cb44164d69cc407286706a Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:30:30 +0100 Subject: [PATCH 030/100] default engine order, full power --- src/openclsim/core/movable.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 35c09abf..d8091168 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -103,7 +103,7 @@ def distance(origin, destination): _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) return distance - def compute_duration(self, origin, destination, engine_order, verbose=True): + def compute_duration(self, origin, destination, engine_order=1.0, verbose=True): """Determine the duration based on great circle path from origin to destination.""" distance = self.distance(origin, destination) return distance / (self.v * engine_order) From 6c03b6fc9e1ec9fe554287e2721a3c0789a0f3a7 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:33:22 +0100 Subject: [PATCH 031/100] remove duplicated code --- src/openclsim/core/movable.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index d8091168..a96b3d64 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -136,13 +136,6 @@ def v(self): self.container.get_level() / self.container.get_capacity() ) - @property - def current_speed(self): - warnings.warn( - "The property `.current_speed` is deprected. Use `.v` instead.", - DeprecationWarning, - ) - return self.v class MultiContainerDependentMovable(Movable, HasMultiContainer): @@ -176,13 +169,6 @@ def v(self): fill_degree = sum_level / sum_capacity return self.compute_v(fill_degree) - @property - def current_speed(self): - warnings.warn( - "The property `.current_speed` is deprected. Use `.v` instead.", - DeprecationWarning, - ) - return self.v class Navigator: def find_route(waypoints): From e1625ee53b32d315046a4e672c1ff569c87d7ccb Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 6 Mar 2023 17:41:54 +0100 Subject: [PATCH 032/100] code issues in movable --- src/openclsim/core/movable.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index a96b3d64..35f54fa5 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -103,7 +103,7 @@ def distance(origin, destination): _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) return distance - def compute_duration(self, origin, destination, engine_order=1.0, verbose=True): + def compute_duration(self, origin, destination, engine_order=1.0): """Determine the duration based on great circle path from origin to destination.""" distance = self.distance(origin, destination) return distance / (self.v * engine_order) @@ -171,11 +171,13 @@ def v(self): class Navigator: + @staticmethod def find_route(waypoints): - route = [] + # TODO: implement this method + route = [waypoint for waypoint in waypoints] return route -class Routable(SimpyObject): +class Routable(SimpyObject, Locatable): """Mixin class: Something with a route (networkx node list format) route: a list of node ids (available on env.graph) or geometries (shapely.Geometry) """ @@ -191,7 +193,7 @@ def __init__(self, route: list, *args, **kwargs): def move_to_geometry(self, geometry: shapely.geometry.Point): """move to geometry""" linestring = shapely.geometry.LineString([self.geometry, geometry]) - distance = self.wgs84.geometry_length(edge_geometry) + distance = self.wgs84.geometry_length(linestring) duration = self.v * distance yield self.env.timeout(duration) self.geometry = geometry @@ -224,12 +226,25 @@ def move_over_route(self, route: List[str]): a = route[0] a_geometry = self.graph.nodes[a]['geometry'] yield from self.move_to_geometry(a_geometry) + # move self to node + geometry + self.node = a + self.geometry = a_geometry + for i, (a, b) in enumerate(pairwise(route)): a_geometry = self.graph[a]['geometry'] b_geometry = self.graph[b]['geometry'] edge_geometry = self.graph[(a, b)]['geometry'] # make sure we are in the right order edge_geometry = self.order_geometry(edge_geometry) + # go to a (we should already be here) + self.geometry = a_geometry + self.node = a + # pass over the edge yield from self.pass_linestring(edge_geometry) + # call any other functions we have registered for pass_edge_function in self.pass_edge_function: - yield pass_edge_function(ship=self, a=a, b=b, route=route, geometry=geometry) + # TODO: name ship with something more general? moveable, routable, self? + yield pass_edge_function(ship=self, a=a, b=b, route=route, geometry=edge_geometry) + # we have arrived, go there.... + self.geometry = b_geometry + self.node = b From 6726e298c995766a71745fff8bf7a2b257c5597d Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 10:23:23 +0100 Subject: [PATCH 033/100] line length --- src/openclsim/core/locatable.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/openclsim/core/locatable.py b/src/openclsim/core/locatable.py index 2ef3477d..da48fce0 100644 --- a/src/openclsim/core/locatable.py +++ b/src/openclsim/core/locatable.py @@ -8,8 +8,9 @@ class Locatable: """Something with a geometry (geojson format). Can be a point as well as a - polygon. The object can also be located on a graph (with a node). That requires the extra and optional - node attribute. Make sure to also update the geometry when sailing over graphs. + polygon. The object can also be located on a graph (with a node). That + requires the extra and optional node attribute. Make sure to also update the + geometry when sailing over graphs. Parameters ---------- From a08e2746348b28105055c3c8fc484aee36bbc2bd Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 10:41:38 +0100 Subject: [PATCH 034/100] fix unit tests for movable --- src/openclsim/core/movable.py | 32 ++++++++++++++++++++------------ tests/test_basic_functions.py | 8 ++++---- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 35f54fa5..81a19994 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -4,7 +4,9 @@ import warnings +import shapely import shapely.geometry + import pyproj from .container import HasContainer, HasMultiContainer @@ -25,6 +27,8 @@ def pairwise(iterable): logger = logging.getLogger(__name__) +# we only have one earth, defined here. +WGS84 = pyproj.Geod(ellps="WGS84") class Movable(SimpyObject, Locatable): """ @@ -45,6 +49,7 @@ def __init__(self, v: float = 1, engine_order: float = 1, *args, **kwargs): self._v = v self.engine_order = 1 + def move(self, destination: Locatable = None, duration: float = None): """ Determine distance between origin and destination. @@ -65,7 +70,7 @@ def move(self, destination: Locatable = None, duration: float = None): # Determine the sailing_duration if duration is None: duration = self.compute_duration( - self.geometry, destination + self.geometry, destination.geometry ) # Check out the time based on duration of sailing event @@ -96,16 +101,16 @@ def current_speed(self): return self.v @staticmethod - def distance(origin, destination): + def compute_distance(origin: shapely.Geometry, destination: shapely.Geometry): """Determine the sailing distance based on great circle path from origin to destination.""" - orig = shapely.geometry.shape(self.geometry) - dest = shapely.geometry.shape(destination.geometry) - _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) + orig = shapely.geometry.shape(origin) + dest = shapely.geometry.shape(destination) + _, _, distance = WGS84.inv(orig.x, orig.y, dest.x, dest.y) return distance - def compute_duration(self, origin, destination, engine_order=1.0): + def compute_duration(self, origin: shapely.Geometry, destination: shapely.Geometry, engine_order=1.0): """Determine the duration based on great circle path from origin to destination.""" - distance = self.distance(origin, destination) + distance = self.compute_distance(origin, destination) return distance / (self.v * engine_order) @@ -182,18 +187,21 @@ class Routable(SimpyObject, Locatable): route: a list of node ids (available on env.graph) or geometries (shapely.Geometry) """ + # one instance on the class + + def __init__(self, route: list, *args, **kwargs): super().__init__(*args, **kwargs) # call functions when passing edges self.route = route self.on_pass_edge_functions = [] - self.wgs84 = pyproj.Geod(ellps="WGS84") + assert hasattr(self.env, "FG"), "expected graph FG to be available on env" def move_to_geometry(self, geometry: shapely.geometry.Point): """move to geometry""" linestring = shapely.geometry.LineString([self.geometry, geometry]) - distance = self.wgs84.geometry_length(linestring) + distance = WGS84.geometry_length(linestring) duration = self.v * distance yield self.env.timeout(duration) self.geometry = geometry @@ -201,7 +209,7 @@ def move_to_geometry(self, geometry: shapely.geometry.Point): def pass_linestring(self, geometry): """Pass an edge. The node pair origin destination should be available on the env.graph.""" assert isinstance(geometry, shapely.geometry.LineString) - distance = self.wgs84.geometry_length(edge_geometry) + distance = WGS84.geometry_length(edge_geometry) duration = self.v * distance yield self.env.timeout(duration) self.geometry = destination_geometry @@ -212,8 +220,8 @@ def order_geometry(geometry: shapely.geometry.LineString, a: shapely.geometry.Po """Make sure the linestring starts at a. If the end of the linestring is closer to a than the start, the linestring is inverted.""" start = shapely.geometry.Point(*geometry.coords[0]) end = shapely.geometry.Point(*geometry.coords[-1]) - _, _, distance_from_start = self.wgs84.inv(start.x, start.y, a.x, a.y) - _, _, distance_from_end = self.wgs84.inv(end.x, end.y, a.x, a.y) + _, _, distance_from_start = WGS84.inv(start.x, start.y, a.x, a.y) + _, _, distance_from_end = WGS84.inv(end.x, end.y, a.x, a.y) if distance_from_start > distance_from_end: coords = np.flipud(np.array(geometry.coords)) else: diff --git a/tests/test_basic_functions.py b/tests/test_basic_functions.py index 527db986..792ef3e1 100644 --- a/tests/test_basic_functions.py +++ b/tests/test_basic_functions.py @@ -50,10 +50,10 @@ def locatable_b(geometry_b): def test_movable(env, geometry_a, locatable_a, locatable_b): """Test movable.""" - class movable(core.Movable, core.Log): + class Movable(core.Movable, core.Log): pass - movable = movable(env=env, geometry=geometry_a, v=10) + movable = Movable(env=env, geometry=geometry_a, v=10) movable.activity_id = "Test activity" env.process(movable.move(locatable_b)) env.run() @@ -71,10 +71,10 @@ def test_container_dependent_movable(env, geometry_a, locatable_a, locatable_b): def compute_v(x): return x * (v_full - v_empty) + v_empty - class movable(core.ContainerDependentMovable, core.Log): + class Movable(core.ContainerDependentMovable, core.Log): pass - movable = movable(env=env, geometry=geometry_a, compute_v=compute_v, capacity=10) + movable = Movable(env=env, geometry=geometry_a, compute_v=compute_v, capacity=10) movable.activity_id = "Test activity" move_and_test(env, locatable_b, movable, 20, 2.18) From cef5306060d3b8c593bfb65bee794426c5ba92d0 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 10:50:49 +0100 Subject: [PATCH 035/100] fix while activity tests --- src/openclsim/core/log.py | 5 ++++- src/openclsim/core/movable.py | 8 ++++++-- src/openclsim/model/while_activity.py | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index f1e093b8..8f5901a8 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -96,7 +96,10 @@ def log_entry_v0(self, log, t: numbers.Number, value, geometry_log): def log_entry(self, *args, **kwargs): """Backward compatible log_entry. Calls the opentnsim variant.""" assert len(args) >= 2 or 't' in kwargs, 'Expected t as second argument or as named argument' - t_argument = kwargs.get('t', args[1]) + if 't' in kwargs: + t_argument = kwargs.get('t') + else: + t_argument = args[1] assert isinstance(t_argument, numbers.Number), f'Expected t of type: Number, got {t_argument} of type: {type(t_argument)}' self.log_entry_v0(*args, **kwargs) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 81a19994..60c91e13 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -47,10 +47,10 @@ def __init__(self, v: float = 1, engine_order: float = 1, *args, **kwargs): super().__init__(*args, **kwargs) """""" self._v = v - self.engine_order = 1 + self.engine_order = 1.0 - def move(self, destination: Locatable = None, duration: float = None): + def move(self, destination: Locatable = None, duration: float = None, engine_order: float = None): """ Determine distance between origin and destination. @@ -60,6 +60,10 @@ def move(self, destination: Locatable = None, duration: float = None): if destination is None: raise ValueError("Movable in OpenCLSim does not support empty destination") + # we got an egnine setting, store it. + if engine_order is not None: + self.engine_order = engine_order + # Log the start event self.log_entry_v1( self.env.now, diff --git a/src/openclsim/model/while_activity.py b/src/openclsim/model/while_activity.py index 80cbd1b6..31e81d4b 100644 --- a/src/openclsim/model/while_activity.py +++ b/src/openclsim/model/while_activity.py @@ -20,7 +20,7 @@ def main_process_function(self, activity_log, env): start_while = env.now - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.START, From 0dc10130d4e7ec605aecb3299652856e5974f066 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 10:59:39 +0100 Subject: [PATCH 036/100] support empty logs --- src/openclsim/core/log.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 8f5901a8..369ca3ad 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -36,9 +36,26 @@ def __init__(self, *args, **kwargs): def log(self): """return the log in log format (compatible with old log attribute)""" df = pd.DataFrame(self.logbook) + if not self.logbook: + # add columns from old formats + empty = { + "Timestamp": [], + "ActivityID": [], + "ActivityState": [], + "ObjectState": [], + "ActivityLabel": [], + "Message": [], + "Timestamp": [], + "Value": [], + "Geometry": [] + } + df = pd.DataFrame(empty) + + # Convert table to this format: # {'a': [1, 2], 'b': [2, 4]} list_format = df.to_dict(orient='list') + return list_format # decorate the log setter. @@ -58,6 +75,7 @@ def log_entry_v1( activity_label=None, ): """Log an entry (openclsim version)""" + assert isinstance(t, numbers.Number), f"expected t variable of type Number, got {t} of type {type(t)}" object_state = self.get_state() @@ -79,6 +97,7 @@ def log_entry_v1( "ObjectState": object_state, "ActivityLabel": activity_label } + print(f'adding {entry} to logbook') self.logbook.append(entry) def log_entry_v0(self, log, t: numbers.Number, value, geometry_log): From a54dd9ac0a09615da29fd2eee85d7677ed2539a4 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 11:17:14 +0100 Subject: [PATCH 037/100] formatting --- src/openclsim/core/log.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 369ca3ad..a0b25666 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -1,14 +1,15 @@ """Component to log the simulation objects.""" import datetime -from enum import Enum import numbers import warnings +from enum import Enum import deprecated import pandas as pd from .simpy_object import SimpyObject + class LogState(Enum): """ LogState enumeration of all possible states of a Log object. @@ -45,16 +46,14 @@ def log(self): "ObjectState": [], "ActivityLabel": [], "Message": [], - "Timestamp": [], "Value": [], - "Geometry": [] + "Geometry": [], } df = pd.DataFrame(empty) - # Convert table to this format: # {'a': [1, 2], 'b': [2, 4]} - list_format = df.to_dict(orient='list') + list_format = df.to_dict(orient="list") return list_format @@ -63,8 +62,9 @@ def log(self): @log.setter def log(self, value): """set the .log attribute (not allowed, will throw a deprecation warning)""" - warnings.warn(".log property is replaced by record format .logbook", DeprecationWarning) - + warnings.warn( + ".log property is replaced by record format .logbook", DeprecationWarning + ) def log_entry_v1( self, @@ -76,7 +76,9 @@ def log_entry_v1( ): """Log an entry (openclsim version)""" - assert isinstance(t, numbers.Number), f"expected t variable of type Number, got {t} of type {type(t)}" + assert isinstance( + t, numbers.Number + ), f"expected t variable of type Number, got {t} of type {type(t)}" object_state = self.get_state() if additional_state: @@ -95,9 +97,8 @@ def log_entry_v1( "ActivityID": activity_id, "ActivityState": activity_state.name, "ObjectState": object_state, - "ActivityLabel": activity_label + "ActivityLabel": activity_label, } - print(f'adding {entry} to logbook') self.logbook.append(entry) def log_entry_v0(self, log, t: numbers.Number, value, geometry_log): @@ -107,22 +108,25 @@ def log_entry_v0(self, log, t: numbers.Number, value, geometry_log): "Message": log, "Timestamp": datetime.datetime.fromtimestamp(t), "Value": value, - "Geometry": geometry_log + "Geometry": geometry_log, } self.logbook.append(entry) @deprecated.deprecated(reason="Use .log_entry_v0 instead") def log_entry(self, *args, **kwargs): """Backward compatible log_entry. Calls the opentnsim variant.""" - assert len(args) >= 2 or 't' in kwargs, 'Expected t as second argument or as named argument' - if 't' in kwargs: - t_argument = kwargs.get('t') + assert ( + len(args) >= 2 or "t" in kwargs + ), "Expected t as second argument or as named argument" + if "t" in kwargs: + t_argument = kwargs.get("t") else: t_argument = args[1] - assert isinstance(t_argument, numbers.Number), f'Expected t of type: Number, got {t_argument} of type: {type(t_argument)}' + assert isinstance( + t_argument, numbers.Number + ), f"Expected t of type: Number, got {t_argument} of type: {type(t_argument)}" self.log_entry_v0(*args, **kwargs) - def get_state(self): """ empty instance of the get state function. @@ -135,6 +139,3 @@ def get_state(self): if hasattr(super(), "get_state"): state = super().get_state() return state - - - From 89543906dbb8ed820b3c8485ebf58f1d0ef2ab2d Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 11:17:33 +0100 Subject: [PATCH 038/100] fixing flake/black/isort --- src/openclsim/core/movable.py | 65 +++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/src/openclsim/core/movable.py b/src/openclsim/core/movable.py index 60c91e13..08508c16 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -1,14 +1,14 @@ """Component to move the simulation objects.""" +import itertools import logging -from typing import List import warnings +from typing import List - +import numpy as np +import pyproj import shapely import shapely.geometry -import pyproj - from .container import HasContainer, HasMultiContainer from .locatable import Locatable from .log import LogState @@ -18,9 +18,10 @@ try: from itertools import pairwise except ImportError: + def pairwise(iterable): # pairwise('ABCDEFG') --> AB BC CD DE EF FG - a, b = tee(iterable) + a, b = itertools.tee(iterable) next(b, None) return zip(a, b) @@ -30,6 +31,7 @@ def pairwise(iterable): # we only have one earth, defined here. WGS84 = pyproj.Geod(ellps="WGS84") + class Movable(SimpyObject, Locatable): """ Movable class. @@ -49,8 +51,12 @@ def __init__(self, v: float = 1, engine_order: float = 1, *args, **kwargs): self._v = v self.engine_order = 1.0 - - def move(self, destination: Locatable = None, duration: float = None, engine_order: float = None): + def move( + self, + destination: Locatable = None, + duration: float = None, + engine_order: float = None, + ): """ Determine distance between origin and destination. @@ -73,15 +79,13 @@ def move(self, destination: Locatable = None, duration: float = None, engine_ord # Determine the sailing_duration if duration is None: - duration = self.compute_duration( - self.geometry, destination.geometry - ) + duration = self.compute_duration(self.geometry, destination.geometry) # Check out the time based on duration of sailing event yield self.env.timeout(duration) # Set mover geometry to destination geometry - print('updating to destination geometry', destination.geometry) + print("updating to destination geometry", destination.geometry) self.geometry = shapely.geometry.shape(destination.geometry) # Log the stop event @@ -112,7 +116,9 @@ def compute_distance(origin: shapely.Geometry, destination: shapely.Geometry): _, _, distance = WGS84.inv(orig.x, orig.y, dest.x, dest.y) return distance - def compute_duration(self, origin: shapely.Geometry, destination: shapely.Geometry, engine_order=1.0): + def compute_duration( + self, origin: shapely.Geometry, destination: shapely.Geometry, engine_order=1.0 + ): """Determine the duration based on great circle path from origin to destination.""" distance = self.compute_distance(origin, destination) return distance / (self.v * engine_order) @@ -146,7 +152,6 @@ def v(self): ) - class MultiContainerDependentMovable(Movable, HasMultiContainer): """ MultiContainerDependentMovable class. @@ -186,6 +191,7 @@ def find_route(waypoints): route = [waypoint for waypoint in waypoints] return route + class Routable(SimpyObject, Locatable): """Mixin class: Something with a route (networkx node list format) route: a list of node ids (available on env.graph) or geometries (shapely.Geometry) @@ -193,7 +199,6 @@ class Routable(SimpyObject, Locatable): # one instance on the class - def __init__(self, route: list, *args, **kwargs): super().__init__(*args, **kwargs) # call functions when passing edges @@ -210,18 +215,24 @@ def move_to_geometry(self, geometry: shapely.geometry.Point): yield self.env.timeout(duration) self.geometry = geometry - def pass_linestring(self, geometry): - """Pass an edge. The node pair origin destination should be available on the env.graph.""" + def pass_linestring(self, geometry: shapely.geometry.LineString): + """Pass a linestring.""" + a = shapely.geometry.Point(geometry.coords[0]) + b = shapely.geometry.Point(geometry.coords[-1]) assert isinstance(geometry, shapely.geometry.LineString) - distance = WGS84.geometry_length(edge_geometry) + distance = WGS84.geometry_length(geometry) + # TODO: align with Movable (use compute_duration) duration = self.v * distance + self.geometry = a yield self.env.timeout(duration) - self.geometry = destination_geometry - + self.geometry = b @staticmethod - def order_geometry(geometry: shapely.geometry.LineString, a: shapely.geometry.Point): - """Make sure the linestring starts at a. If the end of the linestring is closer to a than the start, the linestring is inverted.""" + def order_geometry( + geometry: shapely.geometry.LineString, a: shapely.geometry.Point + ): + """Make sure the linestring starts at a. If the end of the linestring is + closer to a than the start, the linestring is inverted.""" start = shapely.geometry.Point(*geometry.coords[0]) end = shapely.geometry.Point(*geometry.coords[-1]) _, _, distance_from_start = WGS84.inv(start.x, start.y, a.x, a.y) @@ -236,16 +247,16 @@ def order_geometry(geometry: shapely.geometry.LineString, a: shapely.geometry.Po def move_over_route(self, route: List[str]): """sail over the route, a list of nodes""" a = route[0] - a_geometry = self.graph.nodes[a]['geometry'] + a_geometry = self.graph.nodes[a]["geometry"] yield from self.move_to_geometry(a_geometry) # move self to node + geometry self.node = a self.geometry = a_geometry for i, (a, b) in enumerate(pairwise(route)): - a_geometry = self.graph[a]['geometry'] - b_geometry = self.graph[b]['geometry'] - edge_geometry = self.graph[(a, b)]['geometry'] + a_geometry = self.graph[a]["geometry"] + b_geometry = self.graph[b]["geometry"] + edge_geometry = self.graph[(a, b)]["geometry"] # make sure we are in the right order edge_geometry = self.order_geometry(edge_geometry) # go to a (we should already be here) @@ -256,7 +267,9 @@ def move_over_route(self, route: List[str]): # call any other functions we have registered for pass_edge_function in self.pass_edge_function: # TODO: name ship with something more general? moveable, routable, self? - yield pass_edge_function(ship=self, a=a, b=b, route=route, geometry=edge_geometry) + yield pass_edge_function( + ship=self, a=a, b=b, route=route, geometry=edge_geometry + ) # we have arrived, go there.... self.geometry = b_geometry self.node = b From 912584d0d34964db76066b8ce2a8419e08d5773e Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 8 Mar 2023 11:23:06 +0100 Subject: [PATCH 039/100] flake / black / isort --- src/openclsim/model/move_activity.py | 7 +++---- src/openclsim/model/shift_amount_activity.py | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/openclsim/model/move_activity.py b/src/openclsim/model/move_activity.py index 91826707..7e38e4b7 100644 --- a/src/openclsim/model/move_activity.py +++ b/src/openclsim/model/move_activity.py @@ -82,7 +82,7 @@ def main_process_function(self, activity_log, env): corresponds to sailing at 50% of max speed """ - print('mover', self.mover.name, 'destination', self.destination.name) + print("mover", self.mover.name, "destination", self.destination.name) yield from self._request_resource(self.requested_resources, self.mover.resource) start_time = env.now @@ -106,8 +106,7 @@ def main_process_function(self, activity_log, env): engine_order=self.engine_order, duration=self.duration, ) - print('mover', self.mover.name, 'is now at', self.mover.geometry.wkt) - + print("mover", self.mover.name, "is now at", self.mover.geometry.wkt) activity_log.log_entry_v1( t=env.now, @@ -123,4 +122,4 @@ def main_process_function(self, activity_log, env): self.requested_resources, self.mover.resource, self.keep_resources ) - print('mover', self.mover.name, 'is now at', self.mover.geometry.wkt) + print("mover", self.mover.name, "is now at", self.mover.geometry.wkt) diff --git a/src/openclsim/model/shift_amount_activity.py b/src/openclsim/model/shift_amount_activity.py index 29c3c0df..7da49a27 100644 --- a/src/openclsim/model/shift_amount_activity.py +++ b/src/openclsim/model/shift_amount_activity.py @@ -68,8 +68,20 @@ def __init__( def main_process_function(self, activity_log, env): """Origin and Destination are of type HasContainer.""" - print('processing shift amount', 'processor', self.processor.name, 'origin', self.origin.name) - msg = f"Processor {self.processor.name} is at {self.processor.geometry.wkt}. But we expect to shift an amount from the origin location ({self.origin.name}) at {self.origin.geometry.wkt}" + print( + "processing shift amount", + "processor", + self.processor.name, + "origin", + self.origin.name, + ) + # concatenate long string + msg = ( + f"Processor {self.processor.name} is at: " + f"{self.processor.geometry.wkt}." + f"But we expect to shift an amount from the origin location ({self.origin.name}) at: " + f"{self.origin.geometry.wkt}." + ) assert self.processor.is_at(self.origin), msg assert self.destination.is_at(self.origin) From e29c957bb6a8e8f0160c756c861377ef3245f5b4 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Thu, 9 Mar 2023 17:42:00 +0100 Subject: [PATCH 040/100] Complex example for interaction between seagoing vessels and dredging Complex example for interaction between seagoing vessels and dredging --- notebooks/34_Multiple_Seagoing_Vessels.ipynb | 747 +++++++++++++++++++ 1 file changed, 747 insertions(+) create mode 100644 notebooks/34_Multiple_Seagoing_Vessels.ipynb diff --git a/notebooks/34_Multiple_Seagoing_Vessels.ipynb b/notebooks/34_Multiple_Seagoing_Vessels.ipynb new file mode 100644 index 00000000..1999604a --- /dev/null +++ b/notebooks/34_Multiple_Seagoing_Vessels.ipynb @@ -0,0 +1,747 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8be6b996", + "metadata": {}, + "source": [ + "# Harbour traffic problem\n", + "This notebook is developed to address the interference between dredging vessels and container vessels in a certain berth area. Therefore, the berth area is served by both dredging and container vessels.\n", + "\n", + "This is a developed notebook which shows four vessels with different cargo types can serve the same berth while two hopper dredgers also do the maintenance dredging job in the berth location.\n", + "\n", + "Seagoing vessels have separate anchorage areas but the hopper dredgers dump the collected sediments in the same location." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "a20ee13c", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx \n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime, time\n", + "import simpy\n", + "import openclsim\n", + "import opentnsim\n", + "\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f6bbdaeb", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "73605cf2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import openclsim.core as core\n", + "import shapely.geometry as geom\n", + "\n", + "Location = type('Site',\n", + " (openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,), {})\n", + "\n", + "locations = []\n", + "location_offshore_01 = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore_01 = {\"env\": my_env,\n", + " \"name\": \"offshore 1\",\n", + " \"geometry\": location_offshore_01,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_offshore_01))\n", + "offshore_01 = Location(**data_offshore_01)\n", + "\n", + "location_offshore_02 = shapely.geometry.Point(3.748982, 51.991497)\n", + "data_offshore_02 = {\"env\": my_env,\n", + " \"name\": \"offshore 2\",\n", + " \"geometry\": location_offshore_02,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_offshore_02))\n", + "offshore_02 = Location(**data_offshore_02)\n", + "\n", + "location_offshore_03 = shapely.geometry.Point(3.826362, 52.116526)\n", + "data_offshore_03 = {\"env\": my_env,\n", + " \"name\": \"offshore 3\",\n", + " \"geometry\": location_offshore_03,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_offshore_03))\n", + "offshore_03 = Location(**data_offshore_03)\n", + "\n", + "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", + "data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_berth))\n", + "berth = Location(**data_berth)\n", + "\n", + "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", + "data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + " }\n", + "locations.append(Location(**data_dump))\n", + "dump = Location(**data_dump) \n", + "\n", + "\n", + "# Create a network with five nodes and a central node\n", + "graph = nx.DiGraph()\n", + "\n", + "# Add nodes to the network\n", + "locations = [berth] + locations\n", + "for location in locations:\n", + " graph.add_node(location.name)\n", + "\n", + "# Add edges between the central node and all other nodes\n", + "for location in locations[1:]:\n", + " graph.add_edge(berth.name, location.name)\n", + " graph.add_edge(location.name, berth.name)\n", + "\n", + "# Draw the network\n", + "pos = {location.name: (location.geometry.x, location.geometry.y) for location in locations}\n", + "nx.draw_networkx_nodes(graph, pos, node_color='darkblue', node_size=1500)\n", + "nx.draw_networkx_edges(graph, pos, edge_color='red', alpha=1, arrowsize=40)\n", + "nx.draw_networkx_labels(graph, pos, font_size=6, font_weight='bold', font_color=\"white\")\n", + "\n", + "plt.axis('off')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "03b5c23a", + "metadata": {}, + "outputs": [], + "source": [ + "# add a graph to the environment\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5c666c02", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m = folium.Map(location=[52.66, 4.43], zoom_start=8)\n", + "\n", + "folium.Marker(\n", + " [location_dump.y, location_dump.x ], \n", + " popup=\"Dump\", \n", + " tooltip=\"Dump\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_offshore_01.y, location_offshore_01.x ], \n", + " popup=\"Offshore 1\", \n", + " tooltip=\"Offshore 1\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_offshore_02.y, location_offshore_02.x ], \n", + " popup=\"Offshore 2\", \n", + " tooltip=\"Offshore 2\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_offshore_03.y, location_offshore_03.x ], \n", + " popup=\"Offshore 3\", \n", + " tooltip=\"Offshore 3\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_berth.y, location_berth.x ], \n", + " popup=\"Berth\", \n", + " tooltip=\"Berth\"\n", + ").add_to(m)\n", + "\n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d2abc4ad", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "88a57c77", + "metadata": {}, + "outputs": [], + "source": [ + "# data from_site\n", + "data_from_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100\n", + "}\n", + "# instantiate from_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# data to_site\n", + "data_to_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e6466749", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging vessel\",\n", + " \"geometry\": location_berth, \n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 5,\n", + " \"capacity\": 10,\n", + " \"v\": 10,\n", + " \"route\": nx.dijkstra_path(my_env.graph, 'berth', 'dump')\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "# assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3018ddd0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['offshore 1', 'berth', 'offshore 1']" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "['offshore 2', 'berth', 'offshore 2']" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "['offshore 3', 'berth', 'offshore 3']" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# define a path into and out of the habour\n", + "path1 = nx.dijkstra_path(my_env.graph, 'offshore 1', 'berth')\n", + "path2 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore 1')\n", + "path3 = nx.dijkstra_path(my_env.graph, 'offshore 2', 'berth')\n", + "path4 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore 2')\n", + "path5 = nx.dijkstra_path(my_env.graph, 'offshore 3', 'berth')\n", + "path6 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore 3')\n", + "\n", + "path7 = path1+path2[1:]\n", + "path8 = path3+path4[1:]\n", + "path9 = path5+path6[1:]\n", + "display(path7)\n", + "display(path8)\n", + "display(path9)\n", + " \n", + "# create a dict with all important settings\n", + "data_vessel02 = {\"env\": my_env,\n", + " \"name\": 'seagoing vessel 1',\n", + " \"geometry\": location_offshore_01,\n", + " \"route\": path1+path2[1:],\n", + " \"capacity\": 1000,\n", + " \"v\": 1}\n", + "\n", + "data_vessel03 = {\"env\": my_env,\n", + " \"name\": 'seagoing vessel 2',\n", + " \"geometry\": location_offshore_02,\n", + " \"route\": path3+path4[1:],\n", + " \"capacity\": 1500,\n", + " \"v\": 1}\n", + "\n", + "data_vessel04 = {\"env\": my_env,\n", + " \"name\": 'seagoing vessel 3',\n", + " \"geometry\": location_offshore_03,\n", + " \"route\": path5+path6[1:],\n", + " \"capacity\": 2000,\n", + " \"v\": 1}\n", + "\n", + "\n", + "# instantiate vessel_02 \n", + "vessel02 = TransportProcessingResource(**data_vessel02)\n", + "vessel03 = TransportProcessingResource(**data_vessel03)\n", + "vessel04 = TransportProcessingResource(**data_vessel04)\n", + "assert not vessel02.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "fbc43ab7", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "063534c4", + "metadata": {}, + "outputs": [], + "source": [ + "# create a 'while activity' that contains a pre-packed set of 'sub_processes'\n", + "single_run, while_activity = openclsim.model.single_run_process(\n", + " name = \"activity vessel 1\",\n", + " registry={},\n", + " env=my_env,\n", + " origin=berth,\n", + " destination=dump,\n", + " mover=vessel01,\n", + " loader=vessel01,\n", + " unloader=vessel01\n", + ")\n", + "\n", + "sub_processes_vessel02 = openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"Move activity vessel 2\",\n", + " registry={},\n", + " mover=vessel02,\n", + " destination=berth,\n", + ")\n", + "\n", + "sub_processes_vessel03 = openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"Move activity vessel 3\",\n", + " registry={},\n", + " mover=vessel03,\n", + " destination=berth,\n", + ")\n", + "\n", + "sub_processes_vessel04 = openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"Move activity vessel 4\",\n", + " registry={},\n", + " mover=vessel04,\n", + " destination=berth,\n", + ")\n", + "\n", + "simulation_process = openclsim.model.ParallelActivity(\n", + " env=my_env,\n", + " name=\"while activity of seagoing vessels\",\n", + " registry=registry,\n", + " sub_processes=[while_activity, sub_processes_vessel02,sub_processes_vessel03, sub_processes_vessel04]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "c7e5d1f0", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.model.register_processes([simulation_process])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "126557f8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover seagoing vessel 1 destination berth\n", + "mover seagoing vessel 2 destination berth\n", + "mover seagoing vessel 3 destination berth\n" + ] + }, + { + "ename": "Exception", + "evalue": "No activity found in ActivityExpression for id/name activity vessel 1", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmain_process_function(activity_log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, env\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\parallel_activity.py:69\u001b[0m, in \u001b[0;36mParallelActivity.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 67\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(stop_events) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 68\u001b[0m \u001b[38;5;66;03m# wait until any stop event is processed\u001b[39;00m\n\u001b[1;32m---> 69\u001b[0m event_trigger \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse_expression\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 70\u001b[0m \u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mor\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mevent\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mevent\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mstop_events\u001b[49m\u001b[43m]\u001b[49m\u001b[43m}\u001b[49m\u001b[43m]\u001b[49m\n\u001b[0;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 72\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m event_trigger\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:164\u001b[0m, in \u001b[0;36mGenericActivity.parse_expression\u001b[1;34m(self, expr)\u001b[0m\n\u001b[0;32m 163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 164\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mall_of([\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparse_expression(item) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr])\n\u001b[0;32m 165\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mdict\u001b[39m):\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:164\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 164\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mall_of([\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse_expression\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr])\n\u001b[0;32m 165\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mdict\u001b[39m):\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:172\u001b[0m, in \u001b[0;36mGenericActivity.parse_expression\u001b[1;34m(self, expr)\u001b[0m\n\u001b[0;32m 170\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m expr:\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39many_of(\n\u001b[1;32m--> 172\u001b[0m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparse_expression(item) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\n\u001b[0;32m 173\u001b[0m )\n\u001b[0;32m 174\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontainer\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:172\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 170\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m expr:\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39many_of(\n\u001b[1;32m--> 172\u001b[0m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse_expression\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\n\u001b[0;32m 173\u001b[0m )\n\u001b[0;32m 174\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontainer\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:204\u001b[0m, in \u001b[0;36mGenericActivity.parse_expression\u001b[1;34m(self, expr)\u001b[0m\n\u001b[0;32m 203\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m activity_ \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 204\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\n\u001b[0;32m 205\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo activity found in ActivityExpression for id/name \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mkey\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 206\u001b[0m )\n\u001b[0;32m 207\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mall_of(\n\u001b[0;32m 208\u001b[0m [activity_item\u001b[38;5;241m.\u001b[39mmain_process \u001b[38;5;28;01mfor\u001b[39;00m activity_item \u001b[38;5;129;01min\u001b[39;00m activity_]\n\u001b[0;32m 209\u001b[0m )\n", + "\u001b[1;31mException\u001b[0m: No activity found in ActivityExpression for id/name activity vessel 1", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[13], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# start the simulation\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[43mmy_env\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:254\u001b[0m, in \u001b[0;36mEnvironment.run\u001b[1;34m(self, until)\u001b[0m\n\u001b[0;32m 252\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 253\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 255\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m StopSimulation \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 256\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m exc\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;66;03m# == until.value\u001b[39;00m\n", + "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:206\u001b[0m, in \u001b[0;36mEnvironment.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 204\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(event\u001b[38;5;241m.\u001b[39m_value)(\u001b[38;5;241m*\u001b[39mevent\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39margs)\n\u001b[0;32m 205\u001b[0m exc\u001b[38;5;241m.\u001b[39m__cause__ \u001b[38;5;241m=\u001b[39m event\u001b[38;5;241m.\u001b[39m_value\n\u001b[1;32m--> 206\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n", + "\u001b[1;31mException\u001b[0m: No activity found in ActivityExpression for id/name activity vessel 1" + ] + } + ], + "source": [ + "# start the simulation\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b76eccc", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "language": "python", + "name": "myenv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 886d393eeaccb0d4027b953e45e11f2665059ba9 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Mon, 13 Mar 2023 12:27:23 +0100 Subject: [PATCH 041/100] Update __init__.py --- src/openclsim/core/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 4f93e71a..3d40c67c 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -9,6 +9,7 @@ from .processor import LoadingFunction, Processor, UnloadingFunction from .resource import HasResource from .simpy_object import SimpyObject +from .priority import Priority, Location __all__ = [ "basic", @@ -27,4 +28,6 @@ "UnloadingFunction", "HasResource", "SimpyObject", + "Priority", + "Location" ] From ab17a578b464d2f3fa9bbc354040121da9b66f33 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 4 Apr 2023 12:55:58 +0200 Subject: [PATCH 042/100] Hopper Cutter Notebook Hopper cutter/barge comparison in a single system --- notebooks/36_Hopper_cutter_barge.ipynb | 452 +++++++++++++++++++++++++ 1 file changed, 452 insertions(+) create mode 100644 notebooks/36_Hopper_cutter_barge.ipynb diff --git a/notebooks/36_Hopper_cutter_barge.ipynb b/notebooks/36_Hopper_cutter_barge.ipynb new file mode 100644 index 00000000..59956e4e --- /dev/null +++ b/notebooks/36_Hopper_cutter_barge.ipynb @@ -0,0 +1,452 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7d7bbfbb", + "metadata": {}, + "source": [ + "## Hopper Cutter Comparison\n", + "This notebook elaborates a comparison between two cases of a single run:\n", + "* First case: Trailing suction hopper dredger\n", + " * The subprocesses are defined as follows\n", + " * Sailing empty (MoveActivity)\n", + " * Loading (ShiftAmountActivity)\n", + " * Sailing Full (MoveActivity)\n", + " * Unloading (ShiftAmountActivity)\n", + " * Simulating for Hopper (BasicActivity for Vessel1)\n", + " * A sequential activity is defined which is made up of the subprocesses (shows a sequence of different subprocesses)\n", + " * A While activity is \n", + "\n", + "\n", + "* Second case: Cutter suction dredger + barges\n", + " * The sub\n" + ] + }, + { + "cell_type": "markdown", + "id": "48706cb1", + "metadata": {}, + "source": [ + "### 0. Import Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "888158cc", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime, time\n", + "import simpy\n", + "\n", + "import shapely.geometry\n", + "import pandas as pd\n", + "import numpy as np\n", + "import itertools as it\n", + "\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plot as plot" + ] + }, + { + "cell_type": "markdown", + "id": "a8ffd59d", + "metadata": {}, + "source": [ + "### 1. Define Object Classes\n", + "Object classes including Site object and TransportProcessingResource object are defined to show the dredging site and transportation process of dredger material respectively" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58fabdac", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.ContainerDependentMovable,\n", + " core.Processor,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "885daa57", + "metadata": {}, + "source": [ + "### 2. Create Objects (Site Objects and Vessel Objects) and Define the Run Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ad50bfb", + "metadata": {}, + "outputs": [], + "source": [ + "def run(NR_BARGES, NR_HOPPERS, total_amount):\n", + " simulation_start = 0\n", + " my_env = simpy.Environment(initial_time=simulation_start)\n", + " registry = {}\n", + "\n", + " \n", + " \n", + " \n", + " #create site objects\n", + " location_from_site = shapely.geometry.Point(4.18055556, 52.18664444)\n", + " data_from_site = {\"env\": my_env,\n", + " \"name\": \"from_site\",\n", + " \"geometry\": location_from_site,\n", + " \"capacity\": total_amount,\n", + " \"level\": total_amount,\n", + " \"nr_resources\":1}\n", + " from_site = Site(**data_from_site)\n", + "\n", + " location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + " data_to_site = {\"env\": my_env,\n", + " \"name\": \"to_site\",\n", + " \"geometry\": location_to_site,\n", + " \"capacity\": total_amount,\n", + " \"level\": 0,\n", + " \"nr_resources\":7}\n", + " to_site = Site(**data_to_site)\n", + " \n", + " #create vessel objects\n", + " vessels = {}\n", + " \n", + " for i in range(NR_BARGES):\n", + " vessels[f\"barge{i}\"] = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"barge_{i}\",\n", + " geometry=location_from_site,\n", + " capacity=20,\n", + " compute_v=lambda x: 10\n", + " )\n", + " \n", + " cutter = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"cutter\",\n", + " geometry=location_from_site,\n", + " capacity=10,\n", + " compute_v=lambda x: 10\n", + " )\n", + " vessels['cutter'] = cutter\n", + " \n", + " for i in range (NR_HOPPERS):\n", + " vessels[f\"hopper{i}\"] = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"hopper_{i}\",\n", + " geometry=location_from_site,\n", + " capacity=5,\n", + " compute_v=lambda x: 10\n", + " )\n", + " hopper = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"hopper\",\n", + " geometry=location_from_site,\n", + " capacity=5,\n", + " compute_v=lambda x: 10\n", + " )\n", + " \n", + " vessels['hopper'] = hopper\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " #Create activity objects\n", + " activities_cutter = {}\n", + " activities_hopper = {}\n", + " \n", + " for i in range(NR_BARGES):\n", + " requested_resources={}\n", + " \n", + " amount = np.random.randint(4,6) #loading\n", + " duration = np.random.randint(2000,3000) #sailing and unloading\n", + " \n", + " a= [\n", + " model.BasicActivity(\n", + " env=my_env,\n", + " name=f\"basic activity:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " duration=duration,\n", + " additional_logs=[vessels[f\"barge{i}\"]],\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing empty:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"barge{i}\"],\n", + " destination=from_site,\n", + " duration=duration,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"loading:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " processor=cutter,\n", + " origin=from_site,\n", + " destination=vessels[f\"barge{i}\"],\n", + " amount=amount,\n", + " duration=500*amount,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing full:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"barge{i}\"],\n", + " destination=to_site,\n", + " duration=duration,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"unloading:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"barge{i}\"],\n", + " origin=vessels[f\"barge{i}\"],\n", + " destination=to_site,\n", + " amount=amount,\n", + " duration=duration,\n", + " requested_resources=requested_resources,\n", + " )\n", + " ]\n", + " \n", + " \n", + " activities_cutter[f\"activity{i}\"] = model.WhileActivity(\n", + " env=my_env,\n", + " name=f\"while_sequential_activity_subcycle_cutter{i}\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential_activity_subcycle_cutter{i}\",\n", + " registry=registry,\n", + " sub_processes= a\n", + " )],\n", + " condition_event=[{\"type\": \"container\",\n", + " \"concept\": to_site,\n", + " \"state\": \"full\",\n", + " \"id_\":\"default_reservations\"}]\n", + " )\n", + "\n", + " for i in range (NR_HOPPERS):\n", + " requested_resources={} \n", + " \n", + " b= [\n", + " model.BasicActivity(\n", + " env=my_env,\n", + " name=f\"basic activity:\"+vessels[f\"hopper{i}\"].name,\n", + " registry=registry,\n", + " duration=duration,\n", + " additional_logs=[vessels[f\"hopper{i}\"]],\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing empty:\"+vessels[f\"hopper{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"hopper{i}\"],\n", + " destination=from_site,\n", + " duration=duration,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"loading:\"+vessels[f\"hopper{i}\"].name,\n", + " registry=registry,\n", + " processor=hopper,\n", + " origin=from_site,\n", + " destination=vessels[f\"hopper{i}\"],\n", + " amount=amount,\n", + " duration=200*amount,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing full:\"+vessels[f\"hopper{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"hopper{i}\"],\n", + " destination=to_site,\n", + " duration=duration,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"unloading:\"+vessels[f\"hopper{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"hopper{i}\"],\n", + " origin=vessels[f\"hopper{i}\"],\n", + " destination=to_site,\n", + " amount=amount,\n", + " duration=duration,\n", + " requested_resources=requested_resources,\n", + " )\n", + " ]\n", + " \n", + " \n", + " \n", + " activities_hopper[f\"activity{i}\"] = model.WhileActivity(\n", + " env=my_env,\n", + " name=f\"while_sequential_activity_subcycle_hopper{i}\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential_activity_subcycle_hopper{i}\",\n", + " registry=registry,\n", + " sub_processes= b\n", + " )],\n", + " condition_event=[{\"type\": \"container\",\n", + " \"concept\": to_site,\n", + " \"state\": \"full\",\n", + " \"id_\":\"default_reservations\"}\n", + " ]\n", + " )\n", + " \n", + " \n", + " model.register_processes([*activities_hopper.values(), *activities_cutter.values()])\n", + " my_env.run()\n", + " \n", + " return {\n", + " \"vessels\": vessels,\n", + " \"activities_hopper\":activities_hopper,\n", + " \"activities_cutter\":activities_cutter,\n", + " \"from_site\":from_site,\n", + " \"to_site\":to_site,\n", + " }\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4abf6790", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "res = run(5,10,3000)\n", + "vessels = res['vessels']\n", + "activities_cutter = res['activities_cutter']\n", + "activities_hopper = res['activities_hopper']\n", + "cutter = vessels['cutter']\n", + "hopper = vessels['hopper']\n", + "to_site = res['to_site']\n", + "from_site = res['from_site']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "efb020e4", + "metadata": {}, + "outputs": [], + "source": [ + "fig = plot.get_gantt_chart([*vessels.values()], id_map=[*activities_hopper.values(), *activities_cutter.values()])\n", + "#fig = plot.get_gantt_chart([*vessels.values()], id_map=[activities_hopper[x] for x in activities_hopper])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b317191", + "metadata": {}, + "outputs": [], + "source": [ + "fig = plot.get_gantt_chart(\n", + " [from_site, to_site, hopper],\n", + " id_map=[*activities_hopper.values(), *activities_cutter.values()]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1cef40a6", + "metadata": {}, + "outputs": [], + "source": [ + "def expand(a, namespace):\n", + " n = len(namespace)\n", + " sa = []\n", + " if a.name[0:n]==namespace:\n", + " sa.append(a)\n", + " if hasattr(a, \"sub_processes\"):\n", + " for s in a.sub_processes:\n", + " if s.name[0:n]==namespace:\n", + " sa.append(s)\n", + " sa+=expand(s,namespace)\n", + " return sa\n", + "all_activities_hopper = []\n", + "for a in [*activities_hopper]:\n", + " all_activities_hopper+=expand(activities_hopper[a],'load')\n", + "all_activities_hopper\n", + "fig = plot.get_gantt_chart(all_activities_hopper)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19c9bb9c", + "metadata": {}, + "outputs": [], + "source": [ + "fig = plot.get_step_chart([from_site, to_site])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6222f5b0", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "language": "python", + "name": "myenv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "vscode": { + "interpreter": { + "hash": "bcf099f3be34cecc29323113833c3321a094c6a2d0710ea65a450050f317186d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 0f70a7bf7988424d23154c74b84869274afb4227 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 4 Apr 2023 12:56:12 +0200 Subject: [PATCH 043/100] Single Run with Priority --- notebooks/35_SingleRun_with_Priority.ipynb | 393 +++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 notebooks/35_SingleRun_with_Priority.ipynb diff --git a/notebooks/35_SingleRun_with_Priority.ipynb b/notebooks/35_SingleRun_with_Priority.ipynb new file mode 100644 index 00000000..40208de2 --- /dev/null +++ b/notebooks/35_SingleRun_with_Priority.ipynb @@ -0,0 +1,393 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "id": "9f1b7ee1", + "metadata": {}, + "source": [ + "### Single Run with Priority\n", + "\n", + "This notebook is developed based on single run for multiple containers. One dredging vessel along with one seagoing vessel serve the same berth area.\n", + "The aim of this notebook is to find out how the single run and vessels log change when\n", + "* case 1: the dredging vessel is prior\n", + "* case 2: the seagoing vessel is prior" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "id": "bd1db812", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx \n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime, time\n", + "import simpy\n", + "import openclsim\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "id": "10df29e5", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "id": "396aa906", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasMultiContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.MultiContainerDependentMovable,\n", + " core.Processor,\n", + " core.HasResource,\n", + " core.Priority,\n", + " core.LoadingFunction,\n", + " core.UnloadingFunction\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "f4953daf", + "metadata": {}, + "outputs": [], + "source": [ + "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", + "# based on the mixins, more attributes are defined for each location.\n", + "locations = []\n", + "\n", + "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore = {\"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"store_capacity\": 1,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 0},\n", + " ],\n", + " }\n", + "locations.append(Site(**data_offshore))\n", + "offshore = Site(**data_offshore)\n", + "\n", + "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", + "data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"store_capacity\": 200,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 50, \"capacity\": 100},\n", + " {\"id\": \"Soil\", \"level\": 80, \"capacity\": 100},\n", + " ],\n", + " }\n", + "locations.append(Site(**data_berth))\n", + "berth = Site(**data_berth)\n", + "\n", + "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", + "data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"store_capacity\": 100,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 100},\n", + " ],\n", + " }\n", + "locations.append(Site(**data_dump))\n", + "dump = Site(**data_dump)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for dredging_vessel\n", + "data_dredging_vessel = {\"env\": my_env,\n", + " \"name\": \"vessel01\",\n", + " \"geometry\": location_dump, \n", + " \"loading_rate\": 2,\n", + " \"unloading_rate\": 4,\n", + " \"store_capacity\": 7,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 7},\n", + " ],\n", + " \"compute_v\": lambda x: 10,\n", + " \"priority\": 1\n", + " }\n", + "# instantiate dredging_vessel\n", + "dredging_vessel = TransportProcessingResource(**data_dredging_vessel)\n", + "\n", + "# prepare input data for seagoing_vessel\n", + "data_seagoing_vessel = {\"env\": my_env,\n", + " \"name\": \"vessel01\",\n", + " \"geometry\": location_offshore, \n", + " \"loading_rate\": 3,\n", + " \"unloading_rate\": 5,\n", + " \"store_capacity\": 80,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 80},\n", + " ],\n", + " \"compute_v\": lambda x: 5,\n", + " \"priority\": 2\n", + " }\n", + "# instantiate dredging_vessel\n", + "seagoing_vessel = TransportProcessingResource(**data_seagoing_vessel)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "6408a82f", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "ed8f2922", + "metadata": {}, + "outputs": [], + "source": [ + "requested_resources={}\n", + "\n", + "# create a list of the sub processes of dredging vessel\n", + "sub_processes_dredging = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty dredging vessel\",\n", + " registry=registry,\n", + " mover=dredging_vessel,\n", + " destination=berth,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"loading soil\",\n", + " registry=registry,\n", + " processor=dredging_vessel,\n", + " origin=berth,\n", + " destination=dredging_vessel,\n", + " amount=7,\n", + " id_=\"soil\",\n", + " duration=20,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full dredging vessel\",\n", + " registry=registry,\n", + " mover=dredging_vessel,\n", + " destination=dump,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"unloading\",\n", + " registry=registry,\n", + " processor=dredging_vessel,\n", + " origin=dredging_vessel,\n", + " destination=dump,\n", + " amount=7,\n", + " duration=10,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.BasicActivity(\n", + " env=my_env,\n", + " name=\"basic activity\",\n", + " registry=registry,\n", + " duration=0,\n", + " additional_logs=[dredging_vessel],\n", + " ),\n", + "]\n", + "\n", + "\n", + "activities_dredging_vessel = model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=\"sequential_activity_dredging_vessel\",\n", + " registry=registry,\n", + " sub_processes=sub_processes_dredging\n", + " )],\n", + " condition_event=[{\"type\": \"soil\", \"concept\": dump, \"state\": \"full\", \"id_\":\"default_reservations\"}],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "0b386105", + "metadata": {}, + "outputs": [], + "source": [ + "requested_resources={}\n", + "\n", + "# create a list of the sub processes of seagoing vessel\n", + "sub_processes_seagoing = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty seagoing vessel\",\n", + " registry=registry,\n", + " mover=seagoing_vessel,\n", + " destination=berth,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"loading container\",\n", + " registry=registry,\n", + " processor=seagoing_vessel,\n", + " origin=berth,\n", + " destination=seagoing_vessel,\n", + " amount=80,\n", + " id_=\"container\",\n", + " duration=50,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full seagoing vessel\",\n", + " registry=registry,\n", + " mover=seagoing_vessel,\n", + " destination=offshore,\n", + " ),\n", + " model.BasicActivity(\n", + " env=my_env,\n", + " name=\"basic activity\",\n", + " registry=registry,\n", + " duration=0,\n", + " additional_logs=[seagoing_vessel],\n", + " ),\n", + "]\n", + "\n", + "\n", + "activities_seagoing_vessel = model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=\"sequential_activity_seagoing_vessel\",\n", + " registry=registry,\n", + " sub_processes=sub_processes_seagoing\n", + " )],\n", + " condition_event=[{\"type\": \"container\", \"concept\": offshore, \"state\": \"full\", \"id_\":\"default_reservations\"}],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "eb96460b", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_process = openclsim.model.ParallelActivity(\n", + " env=my_env,\n", + " name=\"all activities\",\n", + " registry=registry,\n", + " sub_processes=[activities_dredging_vessel, activities_seagoing_vessel]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "6ac4b3d9", + "metadata": {}, + "outputs": [ + { + "ename": "AssertionError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[110], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m model\u001b[39m.\u001b[39;49mregister_processes([simulation_process])\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\helpers.py:25\u001b[0m, in \u001b[0;36mregister_processes\u001b[1;34m(processes)\u001b[0m\n\u001b[0;32m 22\u001b[0m items \u001b[39m=\u001b[39m get_subprocesses(processes)\n\u001b[0;32m 24\u001b[0m item_names \u001b[39m=\u001b[39m [i\u001b[39m.\u001b[39mname \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m items]\n\u001b[1;32m---> 25\u001b[0m \u001b[39massert\u001b[39;00m \u001b[39mlen\u001b[39m(item_names) \u001b[39m==\u001b[39m \u001b[39mlen\u001b[39m(\u001b[39mset\u001b[39m(item_names))\n\u001b[0;32m 27\u001b[0m \u001b[39mfor\u001b[39;00m item \u001b[39min\u001b[39;00m items:\n\u001b[0;32m 28\u001b[0m item\u001b[39m.\u001b[39mmain_process \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n", + "\u001b[1;31mAssertionError\u001b[0m: " + ] + } + ], + "source": [ + "model.register_processes([simulation_process])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da632d50", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From ac3c00ca26f4d2d6f0c2c324083240e57b2e6b6e Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Wed, 5 Apr 2023 10:54:19 +0200 Subject: [PATCH 044/100] Update Priority Mixin --- src/openclsim/core/priority.py | 53 +++++++++++++++++----------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py index 67af150f..ffa5c761 100644 --- a/src/openclsim/core/priority.py +++ b/src/openclsim/core/priority.py @@ -1,33 +1,34 @@ +import simpy + class Priority: - def __init__(self, env, priority=0, *args, **kwargs): - super().__init__(env, *args, **kwargs) - self.priority = priority + def __init__(self): + self._priority = {} + + def add_priority(self, type, priority): + self._priority[type] = priority - def can_sail(self, location): - """Determine if the vessel can sail through the given location.""" - priority_level = location.priority_level - return self.priority >= priority_level + def get_priority(self, type): + return self._priority[type] - def enter_location(self, location): - """Request permission to enter the location based on priority.""" - with location.request(priority=self.priority) as req: - yield req -class Location: - def __init__(self, env, priority_level=0): +class Berth: + def __init__(self, env): self.env = env - self.priority_level = priority_level - self.queue = [] + self.soil = simpy.Resource(env, capacity=1) # limited number of soil containers + self.cargo = simpy.Resource(env, capacity=1) # limited number of cargo containers + self.priority = Priority() - def request(self, priority=0): - """Request permission to enter the location.""" - req = self.env.event() - self.queue.append((priority, req)) - self.queue.sort(reverse=True) - return req + def vessel(self, type): + if type == "dredging_vessel": + priority = 1 # dredging vessel has priority to claim soil + container = self.soil + elif type == "seagoing_vessel": + priority = 2 # seagoing vessel claims cargo container + container = self.cargo + else: + raise ValueError("Invalid vessel type.") - def allow_next(self): - """Allow the next vessel in the queue to enter the location.""" - if len(self.queue) > 0: - _, req = self.queue.pop(0) - req.succeed() + with container.request(priority=self.priority.get_priority(type)) as request: + yield request + print(f"{type} claimed the {container.type} container.") + yield self.env.timeout(5 if type == "dredging_vessel" else 3) # process container From b004b98fb69ef137de05a629c851ec2ab159dbc4 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Wed, 5 Apr 2023 10:56:00 +0200 Subject: [PATCH 045/100] Update _init_. --- src/openclsim/core/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 3d40c67c..e075f12a 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -29,5 +29,5 @@ "HasResource", "SimpyObject", "Priority", - "Location" + "Berth" ] From 7decccc76b84b424ac72834176ad12431bb11015 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 11 Apr 2023 09:33:54 +0200 Subject: [PATCH 046/100] Update Notebook 35 --- ...Accessibility_Dredging_with_Priority.ipynb | 4098 +++++++++++++++++ notebooks/35_SingleRun_with_Priority.ipynb | 393 -- 2 files changed, 4098 insertions(+), 393 deletions(-) create mode 100644 notebooks/35_Accessibility_Dredging_with_Priority.ipynb delete mode 100644 notebooks/35_SingleRun_with_Priority.ipynb diff --git a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb new file mode 100644 index 00000000..5a7c8f7f --- /dev/null +++ b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb @@ -0,0 +1,4098 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9f1b7ee1", + "metadata": {}, + "source": [ + "### Single Run with Priority\n", + "\n", + "This notebook is developed based on single run for multiple containers. One dredging vessel along with one seagoing vessel serve the same berth area.\n", + "The aim of this notebook is to find out how the single run and vessels log change when\n", + "* case 1: the dredging vessel is prior\n", + "* case 2: the seagoing vessel is prior" + ] + }, + { + "cell_type": "code", + "execution_count": 569, + "id": "bd1db812", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx \n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime, time\n", + "import simpy\n", + "import openclsim\n", + "import opentnsim\n", + "\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "code", + "execution_count": 570, + "id": "10df29e5", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 571, + "id": "396aa906", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of edges is 4\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# we start with creating a graph \n", + "graph = nx.DiGraph()\n", + "\n", + "# make your preferred Site class out of available mix-ins which is a combination of mixins from OpenCLSim and OpenTNSim.\n", + "Location = type('Site',\n", + " (openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,), {})\n", + "\n", + "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", + "# based on the mixins, more attributes are defined for each location.\n", + "locations = []\n", + "\n", + "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore = {\"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_offshore))\n", + "offshore = Location(**data_offshore)\n", + "\n", + "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", + "data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100,\n", + " }\n", + "locations.append(Location(**data_berth))\n", + "berth = Location(**data_berth)\n", + "\n", + "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", + "data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + " }\n", + "locations.append(Location(**data_dump))\n", + "dump = Location(**data_dump) \n", + " \n", + "# a graph is initiated based on the name and gemometry of locations.\n", + "# other attributes such as store_capacity and initials are not being used for drawing the graph.\n", + "for location in locations:\n", + " graph.add_node(location.name,\n", + " geometry = location.geometry)\n", + " \n", + "# add edges\n", + "path = [[locations[i], locations[i+1]] for i in range(len(locations)-1)]\n", + "\n", + "for index, edge in enumerate(path):\n", + " graph.add_edge(edge[0].name, edge[1].name, weight = 1)\n", + " \n", + "# toggle to undirected and back to directed to make sure all edges are two way traffic\n", + "graph = graph.to_undirected() \n", + "graph = graph.to_directed()\n", + "\n", + "# create a positions dict for the purpose of plotting\n", + "positions = {}\n", + "for location in graph.nodes:\n", + " positions[location] = (graph.nodes[location]['geometry'].x, graph.nodes[location]['geometry'].y)\n", + " \n", + "# collect node labels.\n", + "labels = {}\n", + "for location in graph.nodes:\n", + " labels[location] = location\n", + "print('Number of edges is {}'.format(len(graph.edges)))\n", + "\n", + "# draw edges, nodes and labels.\n", + "nx.draw_networkx_edges(graph, pos=positions, width=3, edge_color=\"red\", alpha=1, arrowsize=40)\n", + "nx.draw_networkx_nodes(graph, pos=positions, node_color=\"darkblue\", node_size=1500)\n", + "nx.draw_networkx_labels(graph, pos=positions, labels=labels, font_size=8, font_weight='bold', font_color=\"white\")\n", + "\n", + "plt.axis(\"off\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 572, + "id": "f4953daf", + "metadata": {}, + "outputs": [], + "source": [ + "# add a graph to the environment\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 573, + "id": "f966ea96", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 573, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m = folium.Map(location=[52.66, 4.43], zoom_start=8)\n", + "\n", + "folium.Marker(\n", + " [location_dump.y, location_dump.x ], \n", + " popup=\"Dump\", \n", + " tooltip=\"Dump\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_offshore.y, location_offshore.x ], \n", + " popup=\"Offshore\", \n", + " tooltip=\"Offshore\"\n", + ").add_to(m)\n", + "folium.Marker(\n", + " [location_berth.y, location_berth.x ], \n", + " popup=\"Berth\", \n", + " tooltip=\"Berth\"\n", + ").add_to(m)\n", + "\n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 574, + "id": "6408a82f", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " opentnsim.core.Movable,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Processor,\n", + " openclsim.core.HasResource,\n", + " openclsim.core.LoadingFunction,\n", + " openclsim.core.UnloadingFunction,\n", + "# # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata,\n", + " openclsim.core.Priority\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 575, + "id": "eb96460b", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": my_env, # assigning the simpy environment\n", + " \"name\": \"dredging vessel\", # vessel 01 is the dredging vessel in the simulation\n", + " \"geometry\": location_berth, \n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 5,\n", + " \"capacity\": 10,\n", + " #\"priority\": 1,\n", + " \"v\": 10,\n", + " \"route\": [berth, dump]\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "# assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 576, + "id": "2329f3f4", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 577, + "id": "6ac4b3d9", + "metadata": {}, + "outputs": [], + "source": [ + "# create a 'while activity' that contains a pre-packed set of 'sub_processes'\n", + "single_run, while_activity = openclsim.model.single_run_process(\n", + " name=\"single_run\",\n", + " registry={},\n", + " env=my_env,\n", + " origin=berth,\n", + " destination=dump,\n", + " mover=vessel01,\n", + " loader=vessel01,\n", + " unloader=vessel01,\n", + ")\n", + "# activity = openclsim.model.MoveActivity(\n", + "# env=my_env,\n", + "# name=\"Move activity of dredging vessel\",\n", + "# registry=registry,\n", + "# mover=vessel01,\n", + "# destination=dump,\n", + "# )" + ] + }, + { + "cell_type": "code", + "execution_count": 578, + "id": "da632d50", + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Due to recursion in the events of the activities, not all the activities can be registered.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[578], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m openclsim\u001b[39m.\u001b[39;49mmodel\u001b[39m.\u001b[39;49mregister_processes([while_activity])\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\helpers.py:46\u001b[0m, in \u001b[0;36mregister_processes\u001b[1;34m(processes)\u001b[0m\n\u001b[0;32m 44\u001b[0m logger\u001b[39m.\u001b[39minfo(e)\n\u001b[0;32m 45\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m---> 46\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[0;32m 47\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mDue to recursion in the events of the activities, not all the activities \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 48\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcan be registered.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 49\u001b[0m )\n", + "\u001b[1;31mValueError\u001b[0m: Due to recursion in the events of the activities, not all the activities can be registered." + ] + } + ], + "source": [ + "openclsim.model.register_processes([while_activity])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69f85ca3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover dredging vessel destination dump\n" + ] + }, + { + "ename": "KeyError", + "evalue": "<__main__.Site object at 0x000002375EA9ABE0>", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[39m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[39m=\u001b[39menv\u001b[39m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[39m=\u001b[39mactivity_log\u001b[39m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[39myield from\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmain_process_function(activity_log\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m, env\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39menv)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\move_activity.py:104\u001b[0m, in \u001b[0;36mMoveActivity.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmover\u001b[39m.\u001b[39mactivity_id \u001b[39m=\u001b[39m activity_log\u001b[39m.\u001b[39mid\n\u001b[1;32m--> 104\u001b[0m \u001b[39myield from\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmover\u001b[39m.\u001b[39mmove(\n\u001b[0;32m 105\u001b[0m destination\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdestination,\n\u001b[0;32m 106\u001b[0m engine_order\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mengine_order,\n\u001b[0;32m 107\u001b[0m duration\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mduration,\n\u001b[0;32m 108\u001b[0m )\n\u001b[0;32m 110\u001b[0m activity_log\u001b[39m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 111\u001b[0m t\u001b[39m=\u001b[39menv\u001b[39m.\u001b[39mnow,\n\u001b[0;32m 112\u001b[0m activity_id\u001b[39m=\u001b[39mactivity_log\u001b[39m.\u001b[39mid,\n\u001b[0;32m 113\u001b[0m activity_state\u001b[39m=\u001b[39mcore\u001b[39m.\u001b[39mLogState\u001b[39m.\u001b[39mSTOP,\n\u001b[0;32m 114\u001b[0m )\n", + "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:361\u001b[0m, in \u001b[0;36mMovable.move\u001b[1;34m(self, destination, engine_order, duration)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[39m# Check if vessel is at correct location - if not, move to location\u001b[39;00m\n\u001b[1;32m--> 361\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeometry \u001b[39m!=\u001b[39m nx\u001b[39m.\u001b[39;49mget_node_attributes(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mgraph, \u001b[39m\"\u001b[39;49m\u001b[39mgeometry\u001b[39;49m\u001b[39m\"\u001b[39;49m)[\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mroute[\u001b[39m0\u001b[39;49m]]:\n\u001b[0;32m 362\u001b[0m orig \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeometry\n", + "\u001b[1;31mKeyError\u001b[0m: <__main__.Site object at 0x000002375EA9ABE0>", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[568], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m my_env\u001b[39m.\u001b[39;49mrun()\n", + "File \u001b[1;32mc:\\Users\\asepehri\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:254\u001b[0m, in \u001b[0;36mEnvironment.run\u001b[1;34m(self, until)\u001b[0m\n\u001b[0;32m 252\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 253\u001b[0m \u001b[39mwhile\u001b[39;00m \u001b[39mTrue\u001b[39;00m:\n\u001b[1;32m--> 254\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mstep()\n\u001b[0;32m 255\u001b[0m \u001b[39mexcept\u001b[39;00m StopSimulation \u001b[39mas\u001b[39;00m exc:\n\u001b[0;32m 256\u001b[0m \u001b[39mreturn\u001b[39;00m exc\u001b[39m.\u001b[39margs[\u001b[39m0\u001b[39m] \u001b[39m# == until.value\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\asepehri\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:206\u001b[0m, in \u001b[0;36mEnvironment.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 204\u001b[0m exc \u001b[39m=\u001b[39m \u001b[39mtype\u001b[39m(event\u001b[39m.\u001b[39m_value)(\u001b[39m*\u001b[39mevent\u001b[39m.\u001b[39m_value\u001b[39m.\u001b[39margs)\n\u001b[0;32m 205\u001b[0m exc\u001b[39m.\u001b[39m__cause__ \u001b[39m=\u001b[39m event\u001b[39m.\u001b[39m_value\n\u001b[1;32m--> 206\u001b[0m \u001b[39mraise\u001b[39;00m exc\n", + "\u001b[1;31mKeyError\u001b[0m: <__main__.Site object at 0x000002375EA9ABE0>" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ec2fc285", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityState
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [Activity, Timestamp, ActivityState]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(activity))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2164d1a", + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (1783551121.py, line 11)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m Cell \u001b[1;32mIn[517], line 11\u001b[1;36m\u001b[0m\n\u001b[1;33m \"route\": path, # required by Routeable\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "# define a path into and out of the habour\n", + "path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", + "path2 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore')\n", + "path = path1+path2[1:]\n", + "display(path)\n", + " \n", + "# create a dict with all important settings\n", + "data_vessel02 = {\"env\": my_env, # needed for simpy simulation\n", + " \"name\": 'seagoing vessel', # required by Identifiable\n", + " \"geometry\": location_offshore # required by Locatable\n", + " \"route\": path, # required by Routeable\n", + " \"priority\": 2, # the seagoing vessel has the second priority to serve the berth location\n", + " \"v\": 1,} # required by Movable\n", + "\n", + "# instantiate vessel_02 \n", + "vessel02 = TransportProcessingResource(**data_vessel02)\n", + "assert not vessel02.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "437ea3dd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 206, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# specify the process that needs to be executed\n", + "my_env.process(vessel02.move())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01ed80c7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" + ] + } + ], + "source": [ + "# start the simulation\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8132ea8d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStategeometrycontainer level
0single_run sailing empty1970-01-01 00:00:00.000000STARTPOINT (4.062705498083785 51.95909715255291)0.0
1single_run sailing empty1970-01-01 00:00:00.000000STOPPOINT (4.062705498083785 51.95909715255291)0.0
2single_run loading1970-01-01 00:00:00.000000STARTPOINT (4.062705498083785 51.95909715255291)0.0
3single_run loading1970-01-01 00:00:10.000000STOPPOINT (4.062705498083785 51.95909715255291)10.0
4single_run sailing filled1970-01-01 00:00:10.000000STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
75single_run loading1970-01-01 08:49:59.864804STOPPOINT (4.062705498083785 51.95909715255291)10.0
76single_run sailing filled1970-01-01 08:49:59.864804STARTPOINT (4.062705498083785 51.95909715255291)10.0
77single_run sailing filled1970-01-01 09:16:39.958986STOPPOINT (4.1795229742823 52.11590591837503)10.0
78single_run unloading1970-01-01 09:16:39.958986STARTPOINT (4.1795229742823 52.11590591837503)10.0
79single_run unloading1970-01-01 09:16:41.958986STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", + "

80 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 single_run sailing empty 1970-01-01 00:00:00.000000 START \n", + "1 single_run sailing empty 1970-01-01 00:00:00.000000 STOP \n", + "2 single_run loading 1970-01-01 00:00:00.000000 START \n", + "3 single_run loading 1970-01-01 00:00:10.000000 STOP \n", + "4 single_run sailing filled 1970-01-01 00:00:10.000000 START \n", + ".. ... ... ... \n", + "75 single_run loading 1970-01-01 08:49:59.864804 STOP \n", + "76 single_run sailing filled 1970-01-01 08:49:59.864804 START \n", + "77 single_run sailing filled 1970-01-01 09:16:39.958986 STOP \n", + "78 single_run unloading 1970-01-01 09:16:39.958986 START \n", + "79 single_run unloading 1970-01-01 09:16:41.958986 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + ".. ... ... \n", + "75 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "76 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "77 POINT (4.1795229742823 52.11590591837503) 10.0 \n", + "78 POINT (4.1795229742823 52.11590591837503) 10.0 \n", + "79 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "\n", + "[80 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(vessel01, [*single_run, while_activity]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "141ea4f9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(109,34,97)", + "width": 10 + }, + "mode": "lines", + "name": "single_run", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986" + ], + "y": [ + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(137,62,125)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing empty", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(165,90,153)", + "width": 10 + }, + "mode": "lines", + "name": "single_run loading", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(193,118,181)", + "width": 10 + }, + "mode": "lines", + "name": "single_run unloading", + "type": "scatter", + "x": [ + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(221,146,209)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing filled", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(249,174,237)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing empty", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(21,202,9)", + "width": 10 + }, + "mode": "lines", + "name": "single_run loading", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(49,230,37)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing filled", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(77,2,65)", + "width": 10 + }, + "mode": "lines", + "name": "single_run unloading", + "type": "scatter", + "x": [ + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T09:16:41.958986" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "openclsim.plot.get_gantt_chart([while_activity, vessel01, *single_run])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5205fc7f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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HwnXmDjTcZzonVQAQPCkp6dryJAhGj16tFq3bq22bdtq7NixB81lc+655+qxxx5Tfn6+Kisr9ctf/rJWD5zG2LNnj4YMGaJx48Zp3bp1mjBhgkaMGMF8Oj5BqAMAAMxi+apdNSMcx2ERKQAIut/+9rcqKyvTJZdcohYtWuiOO+7Qtm3baj3moYce0g033KAzzzxTubm5+sMf/qDCwkJXnv+8885T586d9aMf/Ujl5eW65ppr9Otf/9qVbaPxQs6BA+8MUFpaqszMTG3btk0ZGYaONQcAAA0z7Uyp6GNp4D+sHH61bWeFet37piTpi/suVGICd0IBwA27d+/W2rVr1alTJ6WkpHhdjhGuv/56bd26VS+99JLXpVjncO/HWDIPzhIAAICZbO3BUuN1VRl36w0AADQlQh0AAGAYu5OOcI1Qx7H8tQIAgMZhTh0AAAAfqT1RsoeFAAACb+bMmV6XgCOgpw4AADCUneOvak6MTKgDAAAOh1AHAADAR2r21Kki1QEAAIdBqAMAAMwSoJwjQC8VAAA0AKEOAACAj9BTBwAA1BehDgAAMFOIOXUAAECwEeoAAADD2J101F79yu7XCgAAGodQBwAAwEdq9j8i0wEA1OXss8/WyJEj47Ltjh076pFHHqn349etW6dQKKTly5fHpR5TxLNNDiexyZ8RAADAFfYPv2JOHQCA3+Xl5embb75RmzZtvC4lkOipAwAAzGJ50BGqNVGyh4UAAIy1Z8+eJnuuhIQEZWdnKzGRPiNeINQBAADwmXB1ruNYPn8QAODIduzYoUGDBik9PV05OTl66KGHDnpMx44d9Zvf/EaDBg1SRkaGhg0bJklasGCBzjzzTKWmpiovL08///nPtWPHjujvlZSU6JJLLlFqaqo6deqkWbNmHbTt//znPzrjjDOUkpKiHj166O2331YoFNJLL70k6eDhV/PmzVMoFNLcuXPVp08fpaWl6fTTT9fKlStrbXfSpElq27atWrRooaFDh+ruu+9W79696/wbVFVVqX379nriiSdqfX/ZsmUKh8Nav369JGnr1q0aOnSojj76aGVkZOjcc8/VRx99FH38Rx99pHPOOUctWrRQRkaGTj75ZC1dulSStH79el1yySU66qij1Lx5cx1//PF67bXXor/7ySef6MILL1R6erqysrL03//939q8eXOd9TYlQh0AAGAmS1e/kvZPlmx5pyQA8JTjONpZsdOTf7FMhD969GjNnz9fL7/8st58803NmzdPH3744UGP+93vfqdevXpp2bJluueee7RmzRpdcMEFuvzyy/Xxxx/rb3/7mxYsWKARI0ZEf+f666/Xxo0b9c477+iFF17Q448/rpKSkujPKysrNWDAAKWlpWnRokV68sknNXbs2HrVPXbsWD300ENaunSpEhMTdeONN0Z/NmvWLN1333164IEHVFhYqA4dOhwU2NQUDod1zTXXaPbs2bW+P2vWLPXr10/HHHOMJOmKK65QSUmJXn/9dRUWFuqkk07Seeedpy1btkiSBg4cqPbt22vJkiUqLCzU3XffraSkJEnS8OHDVV5ernfffVcrVqzQAw88oPT0dEn7wqJzzz1XJ554opYuXao5c+aouLhYV155Zb3+FvFE/ygAAACfieRVhDoAED+79u5S39l9PXnuRdcuUlpS2hEfV1ZWpunTp+uvf/2rzjvvPEnSM888o/bt2x/02HPPPVd33HFH9OuhQ4dq4MCB0cl7O3furClTpuiss87SE088oQ0bNuj111/X4sWLdcopp0iSpk+fru7du0e38dZbb2nNmjWaN2+esrOzJUn33Xefzj///CPWft999+mss86SJN1999266KKLtHv3bqWkpOjRRx/VkCFDdMMNN0iSxo8frzfffFNlZWWH3N7AgQP10EMPacOGDerQoYOqqqr03HPPady4cZL29UpavHixSkpKlJycLGlf0PXSSy/phRde0LBhw7RhwwaNHj1a3bp1i/5NIjZs2KDLL79cPXv2lCQde+yx0Z899thjOvHEE3X//fdHv/f0008rLy9Pq1atUpcuXY7494gXeuoAAADD2J90RObVYaJkAAi2NWvWaM+ePerbd3/41KpVK3Xt2vWgx/bp06fW1x999JFmzpyp9PT06L/+/furqqpKa9eu1eeff67ExESdfPLJ0d/p1q2bWrZsGf165cqVysvLiwY6knTqqafWq/YTTjgh+t85OTmSFO0FtHLlyoO2c6Tt9u7dW927d4/21pk/f75KSkp0xRVXRF9vWVmZWrduXes1r127VmvWrJEkjRo1SkOHDlVBQYH+53/+J/p9Sfr5z3+uSZMmqV+/fpowYYI+/vjj6M8++ugjvfPOO7W2GwmGam7DC/TUAQAA8JnIwDIiHQCIn9TEVC26dpFnz+225s2b1/q6rKxMN998s37+858f9NgOHTpo1apVrtdQU2RYk1TjZkVVVaO2OXDgQM2ePVt33323Zs+erQsuuECtW7eWtO/15uTkaN68eQf9XiSo+vWvf61rr71Wr776ql5//XVNmDBBzz33nH76059q6NCh6t+/v1599VW9+eabmjx5sh566CHddtttKisr0yWXXKIHHnjgoG1HAiuvEOoAAABD2T+nThXLXwFA3IRCoXoNgfLScccdp6SkJC1atEgdOnSQJH3//fdatWpVdGjToZx00kn67LPP9IMf/KDOn3fr1k179+5VYWFhdPjVypUrtXXr1uhjunbtqo0bN6q4uFhZWVmSpCVLljT6dXXt2lVLlizRoEGDot+rz3avvfZajRs3ToWFhXrhhRc0bdq06M9OOukkFRUVKTExUR07djzkNrp06aIuXbroF7/4ha655hrNmDFDP/3pTyXtW579lltu0S233KIxY8boT3/6k2677TaddNJJ+sc//qGOHTv6bpUvhl8BAACzBGBIksVzQAMAYpCenq4hQ4Zo9OjR+ve//61PPvlE119/vcLhI1/K//KXv9T777+vESNGaPny5Vq9erVefvnl6ETJXbt21QUXXKCbb75ZixYtUmFhoYYOHarU1P29iM4//3wdd9xxGjx4sD7++GO999570TlsQo34sLrttts0ffp0PfPMM1q9erUmTZqkjz/++Ijb7Nixo04//XQNGTJElZWV+q//+q/ozwoKCpSfn68BAwbozTff1Lp16/T+++9r7NixWrp0qXbt2qURI0Zo3rx5Wr9+vd577z0tWbIkOofQyJEj9cYbb2jt2rX68MMP9c4770R/Nnz4cG3ZskXXXHONlixZojVr1uiNN97QDTfcoMrKygb/HdxAqAMAAOAzYebUAQBU++1vf6szzzxTl1xyiQoKCnTGGWfUmgfnUE444QTNnz9fq1at0plnnqkTTzxR48ePV25ubvQxM2bMUG5urs466yxddtllGjZsmNq2bRv9eUJCgl566SWVlZXplFNO0dChQ6OrX6WkpDT4NQ0cOFBjxozRnXfeqZNOOklr167V9ddfX69tDhw4UB999JF++tOf1gqgQqGQXnvtNf3oRz/SDTfcoC5duujqq6/W+vXrlZWVpYSEBH333XcaNGiQunTpoiuvvFIXXnihJk6cKGnfSl/Dhw9X9+7ddcEFF6hLly56/PHHJUm5ubl67733VFlZqR//+Mfq2bOnRo4cqZYtW9YrYIunkBPLWmo+UVpaqszMTG3btk0ZGRlelwMAAJrS1NOkbz+XBv9L6vQjr6uJi54T3tD28r2ad+fZ6tim+ZF/AQBwRLt379batWvVqVOnRgUSQffee+/pjDPO0BdffKHjjjvOte2ef/75ys7O1l/+8hfXtulnh3s/xpJ5+GswGAAAAKLDr+ipAwDw2osvvqj09HR17txZX3zxhW6//Xb169evUYHOzp07NW3aNPXv318JCQl69tln9fbbb+utt95ysfJgINQBAACGsT/o2L+kuceFAAACb/v27frlL3+pDRs2qE2bNiooKNBDDz3UqG1Ghkrdd9992r17t7p27ap//OMfKigocKnq4CDUAQAA8JlwdJ5IUh0AgLcGDRpUa5UqN6Smpurtt992dZtBxUTJAADAUPYuERWmpw4AAKgHQh0AAGCWAMwzE5lTJwAvFQCanIFrBcFCbr0PCXUAAAB8JsSS5gDguqSkJEn7JukFvBZ5H0belw3FnDoAAMBMIXuHX0VeGZkOALgnISFBLVu2VElJiSQpLS0tGqIDTcVxHO3cuVMlJSVq2bKlEhISGrU9Qh0AAACfCdNTBwDiIjs7W5KiwQ7glZYtW0bfj41BqAMAAAxjf9DBjWMAiI9QKKScnBy1bdtWFRUVXpeDgEpKSmp0D50IQh0AAACfoacOAMRXQkKCaxfVgJeYKBkAABjK/u4sZDoAAOBwCHUAAIBZApB0hKvP0OipAwAADodQBwAAwGdC1b2QiHQAAMDhEOoAAAAzWTybcLj6pTn01AEAAIdBqAMAAAxjf9ARik6U7HEhAADA1wh1AAAAfCYU7anjbR0AAMDfCHUAAIChbB5+xZLmAADgyAh1AAAAfCYSV5HpAACAwyHUAQAAZglA0hHpqcNEyQAA4HDiHur8z//8j0KhkEaOHBn93u7duzV8+HC1bt1a6enpuvzyy1VcXBzvUgAAAIwQnVPH2zIAAIDPxTXUWbJkif74xz/qhBNOqPX9X/ziF/rXv/6l559/XvPnz9emTZt02WWXxbMUAABgG4uXNA8xpw4AAKiHxHhtuKysTAMHDtSf/vQnTZo0Kfr9bdu2afr06Zo9e7bOPfdcSdKMGTPUvXt3ffDBBzrttNPiVRIAAPVT+o307X+8rgKHUrHT6wriLhJXrfh6m0IWTwhtspyWKTru6HSvywAABFzcQp3hw4froosuUkFBQa1Qp7CwUBUVFSooKIh+r1u3burQoYMWLlxYZ6hTXl6u8vLy6NelpaXxKhsAEHR7dkpTT5XK+azxvZC9UwMmJuwLch6cs9LjSnA4c0aeqW7ZGV6XAQAIsLiEOs8995w+/PBDLVmy5KCfFRUVqVmzZmrZsmWt72dlZamoqKjO7U2ePFkTJ06MR6kAANS2e+v+QKft8Z6WgsNo1UnK6e11FXFz/ekd9dT/rWX4lU+t+26HdldU6astuwh1AACecj3U2bhxo26//Xa99dZbSklJcWWbY8aM0ahRo6Jfl5aWKi8vz5VtAwBQp3CSdOv7XleBgLrspPa67KT2XpeBQxgw9T0t37iViawBAJ5zvd9yYWGhSkpKdNJJJykxMVGJiYmaP3++pkyZosTERGVlZWnPnj3aunVrrd8rLi5WdnZ2ndtMTk5WRkZGrX8AAMQFPSMAHEG4epojelIBALzmek+d8847TytWrKj1vRtuuEHdunXTL3/5S+Xl5SkpKUlz587V5ZdfLklauXKlNmzYoPz8fLfLAQAAAFwVWZ2MTAcA4DXXQ50WLVrohz/8Ya3vNW/eXK1bt45+f8iQIRo1apRatWqljIwM3XbbbcrPz2flKwAAAPhepKeOQ6oDAPBY3Fa/OpyHH35Y4XBYl19+ucrLy9W/f389/vjjXpQCAEDdQiwjDaBukWXmq8h0AAAea5JQZ968ebW+TklJ0dSpUzV16tSmeHoAAGLAVRqAw4tkvg7HCwCAx1yfKBkAAACwWThETx0AgD8Q6gAAUCeGXwGoW4g5dQAAPkGoAwBATVykATiCMKtfAQB8glAHAAAAiAFz6gAA/IJQBwCAurD6FYBDCEXm1KnyuBAAQOAR6gAAUAt33gEcXiTy5WgBAPAaoQ4AAAAQg3B1qlPFpDoAAI8R6gAAUCeGXwGoW2j/pDoAAHiKUAcAgJq48w7gCOipAwDwC0IdAAAAICbVEyWT6QAAPEaoAwBAXVj9CsAhhFnSHADgE4Q6AADUwkUagMMLh+ipAwDwB0IdAAAAIAbRjnzMqQMA8BihDgAAABADeuoAAPyCUAcAgDoxpw6AQ4jMqUNPHQCAxwh1AACoiYs0AEdATx0AgF8Q6gAAAAAxiE6p42kVAAAQ6gAAUDeWNAdwCGGGXwEAfIJQBwCAWrhIA3B4oerQl0wHAOA1Qh0AAAAgBpGOfFWkOgAAjxHqAABQJ4ZfAahbSEyUDADwB0IdAABq4s47gCOIzqnDcE0AgMcIdQAAAIAYhJlTBwDgE4Q6AADUhdWvABxCiNWvAAA+QagDAAAAxCCy+hVz6gAAvEaoAwAAAMRgf08db+sAAIBQBwCAOjH8CkDdwixpDgDwCUIdAABq4iINwBFEljTnaAEA8BqhDgAAABCDMBMlAwB8glAHAIC6MPoKwCGEWNIcAOAThDoAAABADELMqQMA8AlCHQAAauEiDcDhMacOAMAvCHUAAACAGLD6FQDALwh1AACoE5PqAKhbKDpRsrd1AABAqAMAQE1cpQE4gnB0omSOFwAAbxHqAAAAADGIrH5VRaYDAPAYoQ4AAHUJMfwKQN0YfgUA8AtCHQAAauEqDcDhMVEyAMAvCHUAAACAGISYSB0A4BOEOgAA1ImLNgB1o6cOAMAvEr0uAAACx3Gk4k+kHZu9rgR12bbR6woA+F31pDqbtu7SgtUcy/0otVlYvfOOUkKYgB6A3Qh1AKCpfTFXmnW511XgSEJ0ZgVQt8TqoODtz0v09uclHleDQxndv6uGn/MDr8sAgLgi1AGAprZ13b7/T86QMvM8LQWH0etqrysA4FM/6ZmtBas3q3R3hdeloA6by/Zoc1m5Nm7Z6XUpABB3hDoA4JVjz5au+ovXVQAAYvSDti3091vyvS4DhzD1nS/02zdWsuQ8gECgbzkANDXOMgEAiJsQE1kDCBBCHQAAAADWiCw5T6QDIAgIdQAAAABYgyXnAQQJoQ4AeCXEMqsAALgt8vFKpgMgCAh1AAAAAFgjXJ3qOKQ6AAKAUAcAAACANULVoU4VmQ6AACDUAQDPMPwKAAC3RT5dyXQABAGhDgA0NbqDAwAQN0yUDCBICHUAAAAAWCMUnSnZ2zoAoCkQ6gCAV1j9CgAA19FTB0CQEOoAQJPjJBMAgLiJrn7lcR0A0AQIdQAAAABYg546AIKEUAcAPMPwKwAA3Baq/nwl0gEQBIQ6ANDUuHMIAEDcRHrqOHzeAggAQh0AAAAA1ghFh195WwcANAVCHQDwCqtfAQDgulB0omRSHQD2I9QBgCbHSSYAAPESrg516KkDIAgIdQAAAABYI9IPlkwHQBAQ6gAAAACwRrj6CofhVwCCgFAHADzDnDoAALgtuqQ5mQ6AACDUAYCmxlkmAABxs3/1Kz5vAdiPUAcAAACANfavfuVxIQDQBAh1AMArLGkOAIDrwvTUARAghDoA0OQ4yQQAIF6ic+p4XAcANAVCHQAAAADWiPTUYfUrAEFAqAMAnmH4FQAAbts/UbK3dQBAUyDUAYCmxp1DAADiZv9EyXzeArAfoQ4AAAAAa4SrQx166gAIAkIdAPAKq18BAOC6yKcrmQ6AICDUAYAmx2kmAADxEq6+wmH4FYAgINQBAAAAYI3okuZkOgACgFAHADzD8CsAANy2f/UrUh0A9iPUAYCmxkkmAABxs3/1K48LAYAmQKgDAAAAwBpheuoACBBCHQDwCqtfAQDguhDDmwEECKEOAAAAAGvQUwdAkBDqAECT4yQTAIC4qQ51yHQABAGhDgAAAABrhKuHN9NTB0AQEOoAgGcY8w8AgNsin65kOgCCgFAHAJoaZ5kAAMRNuHpSHT5tAQQBoQ4AAAAAazBRMoAgIdQBAK+wpDkAAHFQ3VOHTAdAABDqAECT4ywTAIB4oacOgCBxPdSZPHmyTjnlFLVo0UJt27bVgAEDtHLlylqP2b17t4YPH67WrVsrPT1dl19+uYqLi90uBQAAAEDAhEL01AEQHK6HOvPnz9fw4cP1wQcf6K233lJFRYV+/OMfa8eOHdHH/OIXv9C//vUvPf/885o/f742bdqkyy67zO1SAMDnGH4FAIDbIj11HFIdAAGQ6PYG58yZU+vrmTNnqm3btiosLNSPfvQjbdu2TdOnT9fs2bN17rnnSpJmzJih7t2764MPPtBpp53mdklA8OzdI321WKqs8LoS1OW7NV5XAACAtULVN012763SgtWbPa4Gh9IrL1MtUpK8LgMwnuuhzoG2bdsmSWrVqpUkqbCwUBUVFSooKIg+plu3burQoYMWLlxYZ6hTXl6u8vLy6NelpaVxrhow3JxfSkuf9roKHAkTJQMA4LqE6q46W3bs0XXTF3lcDQ6lV15LvTy8n9dlAMaLa6hTVVWlkSNHql+/fvrhD38oSSoqKlKzZs3UsmXLWo/NyspSUVFRnduZPHmyJk6cGM9SAbt8v37f/2e0k1JaeloKDiEpRep9rddVAABgna7ZLXTxCTn6oqTM61JQh/K9VVq7eYe+2rLT61IAK8Q11Bk+fLg++eQTLViwoFHbGTNmjEaNGhX9urS0VHl5eY0tD7DfeeOlXld7XQUAAECTSQiH9Ni1J3ldBg5hVfF2/fjhd1kLFHBJ3EKdESNG6H//93/17rvvqn379tHvZ2dna8+ePdq6dWut3jrFxcXKzs6uc1vJyclKTk6OV6mAhfiYBAAAgP+w5DzgLtdXv3IcRyNGjNCLL76of//73+rUqVOtn5988slKSkrS3Llzo99buXKlNmzYoPz8fLfLAQAAAAD4BkvOA25yvafO8OHDNXv2bL388stq0aJFdJ6czMxMpaamKjMzU0OGDNGoUaPUqlUrZWRk6LbbblN+fj4rXwEAAACAxeipA7jL9VDniSeekCSdffbZtb4/Y8YMXX/99ZKkhx9+WOFwWJdffrnKy8vVv39/Pf74426XAkCsrgQAAAD/CIXoqQO4yfVQx6nH3pmSkqKpU6dq6tSpbj89AIlPSQAAAPhSpKdOfa4bARyZ63PqAAAAAABQl3B1T50qMh3AFYQ6gM1CDL8CAACA/zis1gq4glAHsBIfkgAAAPCfcJieOoCbCHUAAAAAAE0i2o+cUAdwBaEOYDWGXwEAAMA/9s+pQ6oDuIFQB7ARH5IAAADwociUj5ytAu4g1AEAAAAANIlIqENPHcAdhDqAzVj9CgAAAD4Sqp4egEwHcAehDmAlPiUBAADgP+Ea9xwdkh2g0Qh1AAAAAABNIlSjJznLmgONR6gDAAAAAGgS9NQB3EWoA9iID0gAAAD4ED11AHcR6gAAAAAAmkTNdTwc5oEEGo1QBwAAAADQJMI1Uh06lwONR6gD2IwlzQEAAOAjNc9OCXWAxiPUAQAAAAA0iXCtOXVIdYDGItQBAAAAADSJ2nPqAGgsQh3Aagy/AgAAgH/UDHXoqQM0HqEOYCM+IAEAAOBDITFRMuAmQh0AAAAAQJMI1xx+RaoDNBqhDmAzVr8CAACAj4RqTZTsYSGAJQh1ACvxCQkAAAD/oacO4C5CHQAAAABAk6CnDuAuQh3Aagy/AgAAgL9Ech2H3uVAoxHqADaiKysAAAB8Klyd6nDKCjQeoQ4AAAAAoMlE+pIT6gCNR6gD2IzVrwAAAOAzkZ46VaQ6QKMR6gBW4gMSAAAAPhWdUwdAYxHqAAAAAACaTGRZ8yqWvwIajVAHsBrDrwAAAOAvIc5RAdcQ6gAAAAAAmky0pw5z6gCNRqgD2IgPSAAAAPhUiCXNAdcQ6gAAAAAAmkyInjqAawh1AJuxpDkAAAB8JnKGyjzJQOMR6gBW4hMSAAAA/hSOTKrDOSvQaIQ6AAAAAIAmE67uTU5PHaDxCHUAqzH8CgAAAP4S7adDqAM0GqEOYCM+IQEAAOBToWhPHc5ZgcYi1AEAAAAANJnIWh5kOkDjEeoANmP1KwAAAPhMmCXNAdckel1AkK3ZukYlO0u8LqNhdpeq2549Oiop3etK4mZLxXat3LHJ6zIapmKLspISdazXdcRRRWWFln+7XHur9npdSoOkJKbohDYnKCGc4HUpceE4jlZ+v1Lf7/7e61Ia7IdtfqgWzVp4XUbcFO8o1pfbvvS6jAZrn95eeRl5XpcRN7v37tbH336sSqfS61IapHlSc/Vs0zM6xMI2juPo0+8+1fY9270upUHCobB6tumptKQ0r0uJm6/LvtaG0g1el9FgnTI7Kbt5ttdlxE+oXAlpX+jF/+zVwk0pXlcTs+aJLZTXvLO1x7gqp0q7wmuVkVbldSkNkhhO1AlHn6DkhGSvS2kShDoe+WTzJ7rm1Wu8LqNRcvbu1RsbN1k5FW+VpCvyclWSaOgukiYpLVfP7yxSN69riZPJiyfr+VXPe11Go9za+1b9v17/z+sy4mLB1wt069xbvS6jUXq07qG/Xfw3r8uIi117d+nSly/VjoodXpfSYOFQWHMum6Oc9ByvS4mLXy34ld5a/5bXZTTKuL7jdFW3q7wuIy7+9eW/NHbBWK/LaJR+uf007fxpXpcRF9/t+k4Xv3ixsTd+JCk5IVn/vvLfymiW4XUpcVHe+k9KS16jv3/ldSUNt+ura7V3+wlelxEXSa3eVUrWa16X0SgXH3uxJp852esymoShV6zm+2r7viNYamKq2rdo73E1sams3KsvS9fqm8RE6eiuUsi+t1GFHJUklkmSjqsKGzdOcWOoSrtD0qbMLGtDncg+lJWWpYxks054tuzaou92f6dNZYb2BKuHr8r2tU96UrpxF917Kvdofel6q9tnW/m2aKDT+ajOHlcTu7Xb1mpv1V4V7Swy7v1VX5FjXLv0dsb1pvh257faWr5VX+/42utS4ibSPpnJmWqb1tbjamKzq2KXvir7Sl+X2ds+xTuLtbdqrxJDierUspPX5cRszdY1Kq8s15ZdW6wNddKab9P2vVJCZRuFnGZelxOTyvD3csK7lNVqp1o0t7NH7/rQvp7WLZJaKjv9aI+riU3ZnjJ9s+Mbq8/jDmTf1bghHO0bP9qzTU9N7z/d42pi831ZsX70j4J9X9z4ppTa0tN64sHZu1uadYokafZ1C407ob7utev00bcfSYbVHYvIPjTy5JG6+NiLPa4mNtNXTNcjHz7idRlx5VSPke/Xrp9+d9bvPK4mNl9u/VKXvnyp12XEVaR9moWb6Z//9U+Pq4ndxS9erPWl670uI64ix7jxp43X6e1O97ia2Pxuye/0zGfPeF1GXEXa54KOF2jcaeM8riY2hcWFun7O9V6XEVeR9mmd2trIY9zpz55u7NC++kptFtb2vdLsS6eqR+seXpcTk7ELxuqVNa9o6JnH6oYf/sjrcuKizxPPqlzSubkDNOnsO7wuJyZvr39bv5j3C6/LaFKmdUCwRpWzb3yi6eMwIx+atom0j2R2G9naPtL+i1Lz+lHt51g8OWDkvWd0+1i8/1Rp3zEuHDK3fWxnxXmCvbtQtH3Yh/wpeo5gePvY/DlkSxtZK7SvfUJWTrRhH/Yij0QO0uwo/kcb+VN0HzL5gsdi0cCK5vGlSPuYvv8EIRg1vY1sFd2HOMj5Eu3jfzZcC9kcukVbxeDPIJvb50CEOh4hnfa3mj11aCN/suIutsW4i+1vXPD4nw29EW0W7Y3IMc6XIr0ROUfwL87jfC5UfS3k0D4m4JPIIyYfyGqXbF799RE5GZDMvOgxseZYRfchA1+rift9rIy+A2dgybEy/YLHyPdVjMw+TzCv5ljVvPljmiDsP6YH16bWHQuT28jEmhvOvNcarPbZh1DHI0Zf8NTo7m5r1/ear8vok1M7m6cWk++S2twt1IbeiLYe3yR7eoFYvQ+ZfJ5QLQjtY/QxjvbxPdrI32w+TwjZ8BlkcfscyNy9yHA2XPDYrOZBgDbyp+jwHg5jvhTtCWLwyYDNTO+pEwScJ/gb7eNvDAH2P5N7IwZCKHItRPuYgCOdR0y+A1erZksPxDXvjBjZRpa2S03RNjLwpZr4noqVyRPxBqF9oruPge0TFCZPlByEfcjooSMGvqdiZfod+kC0kcnXQgFon/0MfK0GltxYhDoeMTudrjH8ytJuoSxp7n+2DB+xlRXdqi3ef+jp5n8mzxsWYfqF9eHQ283fbPgMkmT1MHp6u/lbyIKeOjafxx2IvcgjJqfTQUD7+J/Jd7GDwOS72EFgy/5jc2hgcm+3ILDhGBeI/cfg9rGdDefadocG5oc6QUKo4xGj0+laJ5h27uhGt4/M/oCsL5PHywepfUy8IA1U+wTgtZoq2tPAxFO1ALytrOkJYinTe1IF4dhs8nlCIBjcUycI+8+B+CTyiNF3EGqufuVhGfFkw90Dye47CDa8NqvvktqwD9nbPFGmnkybWncsbOipY8Nx+lBMPn4bfVyuJxv2H8nufSjCxPejiTXHKnTA/8PfCHU8YvodBNtx98D/TO9NZTvax99smVPH5gsezhP8zeTeohE27z/Mu+d/NuxDdqs+PjjmfgbZfIw7EHuRR0zuqROE1a8iTGyfoDC5J0gQLtJM/iANVPvY/1KNZc15gqVsmZfKVqa3TyD2IYOPccHA8CuTEOp4xOyx2DUu1gzufnw4ttw9MLl7+JHY0JvK5ODjSGzYh2xuH9N7UgXhhM30NpICsg9xKu1LtswbZvV5nMG9EU2sOWYGz6kTRHwSecSWsb62siEwsJ0tJ2y2on38jfbxv+gFD23kS5H2Mbl5bA4MTO+pEwQ29NSxeR8KGdxTJ8re5jkIoY5HTD6hNrHmWJk8tEcK1kmMyXexg8DE9jF1v4+F2b1Fg8Hkmz+B2IfoqeNrprePift9rPgcAtzDXuQRow9kQVj9yoJu75LdXd8Z3uNvNvR2C0T7GHrxbWrdsTB6SfNqNt/FNvk8zuTjcn3ZcI4gBeRzyMD3YxA+g/YPvzJvHzLxPdVY5rWSJWzocmgz03vqBIHNJzo2YB8yQxBPfExhck+dIKB9/I3J4P2tZuDLeYJfsfqVSQh1PGLy5GBBYPLdg6CwpTeVrWgff7PmLrbFPUE4T/A303u7SXZf8Jg+/Mp2Nd97Jn8O2bwPmbz6VRCZuxcZzuSeOrXOLy092TR9gj0T31exMrkniIk1x4r28TeT2ycozD5PMK/mWJl+nmA72sff6KmDeArie4pQxyMmj8WuydaE2pY7PLa2j2RHTwOrexlY0NuN9vEvU+uOBb3d/M3k84QgXPDY0JNKsvc8Lrp6nIJxPDdRiCXNjWLeJ5ElGIvtb7SP/9l8wW0DeoKYwfT2sfWCR2If8jt6gvgb7eNzNQ7dJreR3eei5oc6drdPbYQ6HjH5DkKo1g5iXv31EZ3LwNDXZ/IHZH2Z3NstEO1jci8D+5vHip5utjO5N5Wpn52xMPk8LgiM/gyS/e+rmj11TOztFgzmTpRs4udmY7EXecTkC9KabE1ArempY2fzSDJ7vomIIPQyMJkNr+FQbH5ttrChp47N7zOTe4KY/J6qLxv2H8n+82zJ0H3IwJpjFoCXaBOzEwWD2XBBarNo6MYu4luRuzymB6O2oieIv9E+/md6TwPb0T7+ZnJPtyCItI/EtZB/RdrI3Pax+cbCgfgk8ojZd3hqfmFe/fUR/bAx9OUF4QPS5DYKUvuYeYwzr+ZY2XJjweYTNob3+FvNi1JT2doLRDJ//zHxszMWNY/dJr9Wmz+DIhxD96GgIdTxiOkfNhG2HsqsGR5nbQsp+uYzujeVxc0TYXT7WMyWY5zNTL75E2FzaMA+ZAbax59qHhtoI7+q/gwycE6dIGIv8ggnA/5m8lKlQcHwK38zuadOEJjePqbWHQuG9/ibyecJQdh/TD/G2c70iZJNvylfLxYsaW71ze0DmLcXWcLoiXhNrDlGRrePgvFhY/IdYFPfV7EweZLKILRPhIntU5PJx4EjYR/yNyt6Ull8wWPy/iOZW3d91Tp2G/xSbd6HIj11HHrqGIFQxyNGD7+qcSC29VBm+pLmEUG44DH5LrbNJwM29DKwef9homT/s6Gngc3HOBvax2Y2fAZJ9u5DtYZfcTnqU+a+90y/fmsI9iKP2HCHx2am99QJAlsmerUVxzh/M33/MbXuWJje08B2JrePiTXHyuT2CQLTJ0oO1vsqSK/VXIQ6HjF6LHYAdm7je4HY30TMqeNzJvdGNLHmWEV7Ixp4Mh0Epk8iGoR9yJaeILYyvSeV7fsQS5qbwIIlzS3ucX0gPok8YnZoYP8OYvpd7Ahbu+1KNQ7UBjdRENrH1BNqye72UXT3Mbd9JHvbqNZdbIPbyOYTaht6gti6/0h2tI9k7z5kek+dKDubZ59Isxg4p47R76kGMjFRsEI0oQ7ee84Ipt/hCQKTe7sFQTS4pn18iZ5u/lbrLjafQ77EeYK/0ZPK32gfEzg1/hd+x57kEZMveEy/61Efpt/hMbXuWJg8Z0sg2sfgnjpBah9T2d5Gpt/FNrHmWBl9nmBgybEyvse1oWXXl9H7j4JxjIvGOQb21Aki8xIFS5h8wVM7szWx/iPjDoL/RVfv4TDmS7asIGcra3rqmJ1NHRIrw/ifDecJpoe7h8O8Yf5mS0+3IAxhdAw8jwviuae5n0SGMz2hjrD1YGbL67LlddQl+toM3oVsPqE2O7jex+b2ie4+BrePzUzvqRNh9WeQzccHCxjfU6eazfuQZH77BAEtZAZCHY/YklDbKtoLxOA7cLaz4S6pzWgffzO9p5vtn52sDON/Jvd2C8J7yuwFSezHebYJ9rWRiT11ImwPRWtiT/KIyRc85u7a9Wf6HR5T646F0UtmW35BKu2/4DFRoNrH8Jdq6wlbzV4gJr4fTTwux8r08wTJ3v1HMvscQTK37voyvX0ibN6HmFPHLOYlCpawZ/iVnWy5w2Nz93Ab2sjmkwGTg+uIQLQPpwG+VPO9Z/I+ZDMbPoNsZsMQYMnezyGTF7sIGsfAUMf06+uG4JPII7Z82NiK4XH+Z8NdUpuZvMJfEJh+QWr7fl9z+BX7kD+ZfJ5g+/4jmX+Ms53pN36CsQ9FevTa/1ptYOaeZAGTV4YJ2XnToBbTe1KZeJIZK5Pv8pj6vooFwbW/RXvx0Ty+VOvuvIFtFKhjXABeq4lMbx/bPztNP88OFIOv+2wesXAgQh2PmJ5QR9i6q9jSPjZjkj1/M/kudoSt3d4l8ydKjrC1jWxZ0tzmE2oreoLY2zz2LGluaRvZcI4g2X2Mi7z5TBx+FcSs0NNPoqlTp6pjx45KSUlR3759tXjxYi/LaVJWnAxYjDsI/mfrxZwt2IfMYPoJta1Mnyg5CEzvCWI72sffOEcwQHRoBm1kAs8Shb/97W8aNWqUJkyYoA8//FC9evVS//79VVJS4lVJTarmeHnTBOH80vQ7CLZ/SNa6i21gMGp7+0hm93YLQvvY0lPHVjVXjzPy/WhgybEyuSeIiTXHyvSbp0bu9zEw+RxBCsg+5ER66nhcSCME6QZwoldP/Pvf/1433XSTbrjhBknStGnT9Oqrr+rpp5/W3Xff7VVZTcb0g1nE4uKlSktK87oM163cslKS+R+qq7eu1sJNC70uw3W17mIb3Ebf7frOyvaRpC27t0gyu30cx7G2fdZsW7PvP8xtHknS5999roRQgtdluG77nu3R/zb54qFoZ5G1+1CkjUw+xpVXlVvbPutL10sye/+RpI83f6zSPaVel+G6TWWbJJm9/0jSV2VfWbsPVam8+r/MayPT31cN4Umos2fPHhUWFmrMmDHR74XDYRUUFGjhwoN3jPLycpWXl0e/Li01/+BmdrfD/TWPnDfSuzKaQELYzIuFSFg445MZmvHJDI+riS8T2ygc3tc+H5Z8qGFvDfO4mvgysX0iNVc6lda3T2LIs3s7jRIJcqYsm+JxJfFlevu8+9W7everdz2uJr5MPMZFzhG2lW+z/hhnaugbaaP7F93vcSXxZeL+I+1/X7365at69ctXPa4mzhyzOyAEhSdnC5s3b1ZlZaWysrJqfT8rK0v/+c9/Dnr85MmTNXHixKYqr0lkpWWpy1Fd1CqlldelxCwpoZlurGim/0vYK7U6zsQAt14SQ4m6utvVXpfRIFd0uUKbd23WXmev16XE1SlZpyijWYbXZcTszHZnqm92X20p3+J1KXHVOqW1Ts893esyYtY6pbV+1uVn+ujbj7wuJa6ahZvpZ11+5nUZDXJt92v158/+rEqn0utS4urcvHO9LqFBCjoU6L2v39P2iu1HfrDBstOydXLWyV6XEbPjMo/ThR0v1BfbvvC6lLhKTUjVfx33X16X0SCDjx+sF1a9YP3wkQHHDfC6hAa56NiLtGLzCu3cu9PrUuLmu7I92rnjKHVp1dXrUmKWlpSmLkd10TEZx3hdSpMJOR5M271p0ya1a9dO77//vvLz86Pfv+uuuzR//nwtWrSo1uPr6qmTl5enbdu2KSPDvAs6AAAAAACAupSWliozM7NemYcnPXXatGmjhIQEFRcX1/p+cXGxsrOzD3p8cnKykpOTm6o8AAAAAAAA3/NkkFyzZs108skna+7cudHvVVVVae7cubV67gAAAAAAAKBuns3AN2rUKA0ePFh9+vTRqaeeqkceeUQ7duyIroYFAAAAAACAQ/Ms1Lnqqqv07bffavz48SoqKlLv3r01Z86cgyZPBgAAAAAAwME8mSi5sWKZNAgAAAAAAMAUsWQeLDwPAAAAAABgIEIdAAAAAAAAAxHqAAAAAAAAGIhQBwAAAAAAwECEOgAAAAAAAAYi1AEAAAAAADAQoQ4AAAAAAICBCHUAAAAAAAAMRKgDAAAAAABgIEIdAAAAAAAAAxHqAAAAAAAAGIhQBwAAAAAAwECEOgAAAAAAAAYi1AEAAAAAADAQoQ4AAAAAAICBCHUAAAAAAAAMlOh1AQ3hOI4kqbS01ONKAAAAAAAA3BPJOiLZx+EYGeps375dkpSXl+dxJQAAAAAAAO7bvn27MjMzD/uYkFOf6MdnqqqqtGnTJrVo0UKhUMjrchqktLRUeXl52rhxozIyMrwuB4dBW5mBdjID7WQO2soMtJMZaCdz0FZmoJ3MQDs1nOM42r59u3JzcxUOH37WHCN76oTDYbVv397rMlyRkZHBG9wQtJUZaCcz0E7moK3MQDuZgXYyB21lBtrJDLRTwxyph04EEyUDAAAAAAAYiFAHAAAAAADAQIQ6HklOTtaECROUnJzsdSk4AtrKDLSTGWgnc9BWZqCdzEA7mYO2MgPtZAbaqWkYOVEyAAAAAABA0NFTBwAAAAAAwECEOgAAAAAAAAYi1AEAAAAAADAQoQ4AAAAAAICBCHUAAAAAAAAMRKhTberUqerYsaNSUlLUt29fLV68uNbPn3zySZ199tnKyMhQKBTS1q1b67XdDRs26KKLLlJaWpratm2r0aNHa+/evdGff/PNN7r22mvVpUsXhcNhjRw50pXtStK8efN00kknKTk5WT/4wQ80c+bMem3b72xrq4Zu1+9sa6d//vOfOv/883X00UcrIyND+fn5euONN+q1bT+zrZ0WLFigfv36qXXr1kpNTVW3bt308MMP12vbfmdbW9X03nvvKTExUb17967Xtv3MtnaaN2+eQqHQQf+KiorqtX2/sq2dJKm8vFxjx47VMccco+TkZHXs2FFPP/10vbbvZ7a11fXXX1/nPnX88cfXa/t+ZVs7SdKsWbPUq1cvpaWlKScnRzfeeKO+++67em3fr2xsp6lTp6p79+5KTU1V165d9ec//7le27YJoY6kv/3tbxo1apQmTJigDz/8UL169VL//v1VUlISfczOnTt1wQUX6Fe/+lW9t1tZWamLLrpIe/bs0fvvv69nnnlGM2fO1Pjx46OPKS8v19FHH61x48apV69erm137dq1uuiii3TOOedo+fLlGjlypIYOHWr8RaiNbdWQ7fqdje307rvv6vzzz9drr72mwsJCnXPOObrkkku0bNmyetfvNza2U/PmzTVixAi9++67+vzzzzVu3DiNGzdOTz75ZL3r9yMb2ypi69atGjRokM4777x61+1XNrfTypUr9c0330T/tW3btt71+42t7XTllVdq7ty5mj59ulauXKlnn31WXbt2rXf9fmRjW/3hD3+otS9t3LhRrVq10hVXXFHv+v3GxnZ67733NGjQIA0ZMkSffvqpnn/+eS1evFg33XRTvev3Gxvb6YknntCYMWP061//Wp9++qkmTpyo4cOH61//+le967eCA+fUU091hg8fHv26srLSyc3NdSZPnnzQY9955x1HkvP9998fcbuvvfaaEw6HnaKiouj3nnjiCScjI8MpLy8/6PFnnXWWc/vtt7uy3bvuuss5/vjja/3eVVdd5fTv3/+I2/czG9uqIdv1O9vbKaJHjx7OxIkTj7h9vwpKO/30pz91rrvuuiNu389sbqurrrrKGTdunDNhwgSnV69eR9y2n9nYTrHUaQob2+n11193MjMzne++++6I2zOJjW11oBdffNEJhULOunXrjrh9v7KxnX772986xx57bK3fmzJlitOuXbsjbt+vbGyn/Px8584776z1e6NGjXL69et3xO3bJPA9dfbs2aPCwkIVFBREvxcOh1VQUKCFCxc2atsLFy5Uz549lZWVFf1e//79VVpaqk8//TSu2124cGGt1xR5TGNfk5dsbSvbBKWdqqqqtH37drVq1arBz+uloLTTsmXL9P777+uss85q8PN6zea2mjFjhr788ktNmDChwc/lFza3kyT17t1bOTk5Ov/88/Xee+81+Dm9Zms7vfLKK+rTp48efPBBtWvXTl26dNGdd96pXbt2NfwFeczWtjrQ9OnTVVBQoGOOOabBz+slW9spPz9fGzdu1GuvvSbHcVRcXKwXXnhBP/nJTxr+gjxkazuVl5crJSWl1u+lpqZq8eLFqqioaPBzmybwoc7mzZtVWVlZ680iSVlZWY0eL15UVFTndiM/i+d2D/WY0tJSYz/gbW0r2wSlnX73u9+prKxMV155ZYOf10u2t1P79u2VnJysPn36aPjw4Ro6dGiDn9drtrbV6tWrdffdd+uvf/2rEhMTG/xcfmFrO+Xk5GjatGn6xz/+oX/84x/Ky8vT2WefrQ8//LDBz+slW9vpyy+/1IIFC/TJJ5/oxRdf1COPPKIXXnhBt956a4Of12u2tlVNmzZt0uuvv85n1CF42U79+vXTrFmzdNVVV6lZs2bKzs5WZmampk6d2uDn9ZKt7dS/f3899dRTKiwslOM4Wrp0qZ566ilVVFRo8+bNDX5u0wQ+1HHLhRdeqPT0dKWnpxs/0ZntaCsz+LmdZs+erYkTJ+rvf/+70fNKuMGv7fR///d/Wrp0qaZNm6ZHHnlEzz77rNclec5PbVVZWalrr71WEydOVJcuXTytxW/81E6S1LVrV9188806+eSTdfrpp+vpp5/W6aefbs0E5A3lt3aqqqpSKBTSrFmzdOqpp+onP/mJfv/73+uZZ54x9maeW/zWVjU988wzatmypQYMGOB1KZ7zWzt99tlnuv322zV+/HgVFhZqzpw5WrdunW655RavS/OU39rpnnvu0YUXXqjTTjtNSUlJuvTSSzV48GBJ+3oiBYX5t8YaqU2bNkpISFBxcXGt7xcXFys7O7ve23nqqaeiH5pJSUmSpOzs7INmFI88TyzbPlB9tpudnV3na8rIyFBqamqDn9tLtraVbWxvp+eee05Dhw7V888/f9AQR5PY3k6dOnWSJPXs2VPFxcX69a9/rWuuuabBz+0lG9tq+/btWrp0qZYtW6YRI0ZI2ndR6jiOEhMT9eabb+rcc89t8PN7wcZ2OpRTTz1VCxYsaPDzesnWdsrJyVG7du2UmZkZfUz37t3lOI6++uorde7cucHP7xVb2yrCcRw9/fTT+u///m81a9aswc/pNVvbafLkyerXr59Gjx4tSTrhhBPUvHlznXnmmZo0aZJycnIa/PxesLWdUlNT9fTTT+uPf/yjiouLlZOToyeffFItWrTQ0Ucf3eDnNk1w4qtDaNasmU4++WTNnTs3+r2qqirNnTtX+fn59d5Ou3bt9IMf/EA/+MEPomNi8/PztWLFilozir/11lvKyMhQjx49Glxzfbabn59f6zVFHhPLa/IbW9vKNja307PPPqsbbrhBzz77rC666KIGP58f2NxOB6qqqlJ5eXmDn9drNrZVRkaGVqxYoeXLl0f/3XLLLeratauWL1+uvn37Nvi5vWJjOx3K8uXLjbugibC1nfr166dNmzaprKws+phVq1YpHA6rffv2DX5uL9naVhHz58/XF198oSFDhjT4+fzA1nbauXPnQT09EhISJO0L5ExjaztFJCUlqX379kpISNBzzz2niy++OFA9dVj9ynGc5557zklOTnZmzpzpfPbZZ86wYcOcli1b1ppp+5tvvnGWLVvm/OlPf3IkOe+++66zbNmyw64ysHfvXueHP/yh8+Mf/9hZvny5M2fOHOfoo492xowZU+txy5Ytc5YtW+acfPLJzrXXXussW7bM+fTTTxu13S+//NJJS0tzRo8e7Xz++efO1KlTnYSEBGfOnDmN+Et5z8a2ash2/c7Gdpo1a5aTmJjoTJ061fnmm2+i/7Zu3dqIv5S3bGynxx57zHnllVecVatWOatWrXKeeuopp0WLFs7YsWMb8Zfyno1tdSAbVr+ysZ0efvhh56WXXnJWr17trFixwrn99tudcDjsvP322434S3nLxnbavn270759e+dnP/uZ8+mnnzrz5893Onfu7AwdOrQRfynv2dhWEdddd53Tt2/fBvxV/MfGdpoxY4aTmJjoPP74486aNWucBQsWOH369HFOPfXURvylvGVjO61cudL5y1/+4qxatcpZtGiRc9VVVzmtWrVy1q5d2/A/lIEIdao9+uijTocOHZxmzZo5p556qvPBBx/U+vmECRMcSQf9mzFjxmG3u27dOufCCy90UlNTnTZt2jh33HGHU1FRUesxdW33mGOOafR233nnHad3795Os2bNnGOPPfaItZrCxrZqyHb9zrZ2Ouuss+rc7uDBg2P5s/iObe00ZcoU5/jjj3fS0tKcjIwM58QTT3Qef/xxp7KyMqa/ix/Z1lYHsiHUcRz72umBBx5wjjvuOCclJcVp1aqVc/bZZzv//ve/Y/qb+JFt7eQ4jvP55587BQUFTmpqqtO+fXtn1KhRzs6dO+v9N/ErG9tq69atTmpqqvPkk0/W++/gdza205QpU5wePXo4qampTk5OjjNw4EDnq6++qvffxI9sa6fPPvvM6d27t5OamupkZGQ4l156qfOf//wnpr+JDUKOY2D/MQAAAAAAgIAL0EAzAAAAAAAAexDqAAAAAAAAGIhQBwAAAAAAwECEOgAAAAAAAAYi1AEAAAAAADAQoQ4AAAAAAICBCHUAAAAAAAAMRKgDAAAAAABgIEIdAAAAAAAAAxHqAAAAAAAAGIhQBwAAAAAAwED/H1+oHaueTKsCAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = openclsim.plot.get_step_chart([berth, dump, vessel01])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d901a65", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Message': ['Sailing from node offshore to node berth start',\n", + " 'Sailing from node offshore to node berth stop',\n", + " 'Sailing from node berth to node offshore start',\n", + " 'Sailing from node berth to node offshore stop'],\n", + " 'Timestamp': [Timestamp('1970-01-01 01:00:00'),\n", + " Timestamp('1970-01-01 10:18:15.594056'),\n", + " Timestamp('1970-01-01 10:18:15.594056'),\n", + " Timestamp('1970-01-01 19:36:31.188113')],\n", + " 'Value': [0, 0, 0, 0],\n", + " 'Geometry': [,\n", + " ,\n", + " ,\n", + " ]}" + ] + }, + "execution_count": 211, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vessel02.log" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a4095a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MessageTimestampValueGeometry
0Sailing from node offshore to node berth start1970-01-01 01:00:00.0000000POINT (3.637610458072877 52.10701582514347)
1Sailing from node offshore to node berth stop1970-01-01 10:18:15.5940560POINT (4.062705498083785 51.95909715255291)
2Sailing from node berth to node offshore start1970-01-01 10:18:15.5940560POINT (4.062705498083785 51.95909715255291)
3Sailing from node berth to node offshore stop1970-01-01 19:36:31.1881130POINT (3.637610458072877 52.10701582514347)
\n", + "
" + ], + "text/plain": [ + " Message Timestamp \\\n", + "0 Sailing from node offshore to node berth start 1970-01-01 01:00:00.000000 \n", + "1 Sailing from node offshore to node berth stop 1970-01-01 10:18:15.594056 \n", + "2 Sailing from node berth to node offshore start 1970-01-01 10:18:15.594056 \n", + "3 Sailing from node berth to node offshore stop 1970-01-01 19:36:31.188113 \n", + "\n", + " Value Geometry \n", + "0 0 POINT (3.637610458072877 52.10701582514347) \n", + "1 0 POINT (4.062705498083785 51.95909715255291) \n", + "2 0 POINT (4.062705498083785 51.95909715255291) \n", + "3 0 POINT (3.637610458072877 52.10701582514347) " + ] + }, + "execution_count": 212, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# note the slightly different log handling than for the openclsim elemnents\n", + "df = pd.DataFrame.from_dict(vessel02.log)\n", + "df" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/35_SingleRun_with_Priority.ipynb b/notebooks/35_SingleRun_with_Priority.ipynb deleted file mode 100644 index 40208de2..00000000 --- a/notebooks/35_SingleRun_with_Priority.ipynb +++ /dev/null @@ -1,393 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "id": "9f1b7ee1", - "metadata": {}, - "source": [ - "### Single Run with Priority\n", - "\n", - "This notebook is developed based on single run for multiple containers. One dredging vessel along with one seagoing vessel serve the same berth area.\n", - "The aim of this notebook is to find out how the single run and vessels log change when\n", - "* case 1: the dredging vessel is prior\n", - "* case 2: the seagoing vessel is prior" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "id": "bd1db812", - "metadata": {}, - "outputs": [], - "source": [ - "import networkx as nx \n", - "import shapely.geometry\n", - "import pyproj\n", - "\n", - "\n", - "import datetime, time\n", - "import simpy\n", - "import openclsim\n", - "import openclsim.core as core\n", - "import openclsim.model as model\n", - "\n", - "import pandas as pd\n", - "\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "id": "10df29e5", - "metadata": {}, - "outputs": [], - "source": [ - "# setup environment\n", - "simulation_start = 0\n", - "my_env = simpy.Environment(initial_time=simulation_start)" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "id": "396aa906", - "metadata": {}, - "outputs": [], - "source": [ - "# create a Site object based on desired mixin classes\n", - "Site = type(\n", - " \"Site\",\n", - " (\n", - " core.Identifiable,\n", - " core.Log,\n", - " core.Locatable,\n", - " core.HasMultiContainer,\n", - " core.HasResource,\n", - " ),\n", - " {},\n", - ")\n", - "\n", - "# create a TransportProcessingResource object based on desired mixin classes\n", - "TransportProcessingResource = type(\n", - " \"TransportProcessingResource\",\n", - " (\n", - " core.Identifiable,\n", - " core.Log,\n", - " core.MultiContainerDependentMovable,\n", - " core.Processor,\n", - " core.HasResource,\n", - " core.Priority,\n", - " core.LoadingFunction,\n", - " core.UnloadingFunction\n", - " ),\n", - " {},\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "f4953daf", - "metadata": {}, - "outputs": [], - "source": [ - "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", - "# based on the mixins, more attributes are defined for each location.\n", - "locations = []\n", - "\n", - "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", - "data_offshore = {\"env\": my_env,\n", - " \"name\": \"offshore\",\n", - " \"geometry\": location_offshore,\n", - " \"store_capacity\": 1,\n", - " \"initials\": [\n", - " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", - " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 0},\n", - " ],\n", - " }\n", - "locations.append(Site(**data_offshore))\n", - "offshore = Site(**data_offshore)\n", - "\n", - "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", - "data_berth = {\"env\": my_env,\n", - " \"name\": \"berth\",\n", - " \"geometry\": location_berth,\n", - " \"store_capacity\": 200,\n", - " \"initials\": [\n", - " {\"id\": \"Container\", \"level\": 50, \"capacity\": 100},\n", - " {\"id\": \"Soil\", \"level\": 80, \"capacity\": 100},\n", - " ],\n", - " }\n", - "locations.append(Site(**data_berth))\n", - "berth = Site(**data_berth)\n", - "\n", - "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", - "data_dump = {\"env\": my_env,\n", - " \"name\": \"dump\",\n", - " \"geometry\": location_dump,\n", - " \"store_capacity\": 100,\n", - " \"initials\": [\n", - " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", - " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 100},\n", - " ],\n", - " }\n", - "locations.append(Site(**data_dump))\n", - "dump = Site(**data_dump)" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": {}, - "outputs": [], - "source": [ - "# prepare input data for dredging_vessel\n", - "data_dredging_vessel = {\"env\": my_env,\n", - " \"name\": \"vessel01\",\n", - " \"geometry\": location_dump, \n", - " \"loading_rate\": 2,\n", - " \"unloading_rate\": 4,\n", - " \"store_capacity\": 7,\n", - " \"initials\": [\n", - " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", - " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 7},\n", - " ],\n", - " \"compute_v\": lambda x: 10,\n", - " \"priority\": 1\n", - " }\n", - "# instantiate dredging_vessel\n", - "dredging_vessel = TransportProcessingResource(**data_dredging_vessel)\n", - "\n", - "# prepare input data for seagoing_vessel\n", - "data_seagoing_vessel = {\"env\": my_env,\n", - " \"name\": \"vessel01\",\n", - " \"geometry\": location_offshore, \n", - " \"loading_rate\": 3,\n", - " \"unloading_rate\": 5,\n", - " \"store_capacity\": 80,\n", - " \"initials\": [\n", - " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", - " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 80},\n", - " ],\n", - " \"compute_v\": lambda x: 5,\n", - " \"priority\": 2\n", - " }\n", - "# instantiate dredging_vessel\n", - "seagoing_vessel = TransportProcessingResource(**data_seagoing_vessel)" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "id": "6408a82f", - "metadata": {}, - "outputs": [], - "source": [ - "# initialise registry\n", - "registry = {}" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "ed8f2922", - "metadata": {}, - "outputs": [], - "source": [ - "requested_resources={}\n", - "\n", - "# create a list of the sub processes of dredging vessel\n", - "sub_processes_dredging = [\n", - " model.MoveActivity(\n", - " env=my_env,\n", - " name=\"sailing empty dredging vessel\",\n", - " registry=registry,\n", - " mover=dredging_vessel,\n", - " destination=berth,\n", - " ),\n", - " model.ShiftAmountActivity(\n", - " env=my_env,\n", - " name=\"loading soil\",\n", - " registry=registry,\n", - " processor=dredging_vessel,\n", - " origin=berth,\n", - " destination=dredging_vessel,\n", - " amount=7,\n", - " id_=\"soil\",\n", - " duration=20,\n", - " requested_resources=requested_resources,\n", - " ),\n", - " model.MoveActivity(\n", - " env=my_env,\n", - " name=\"sailing full dredging vessel\",\n", - " registry=registry,\n", - " mover=dredging_vessel,\n", - " destination=dump,\n", - " ),\n", - " model.ShiftAmountActivity(\n", - " env=my_env,\n", - " name=\"unloading\",\n", - " registry=registry,\n", - " processor=dredging_vessel,\n", - " origin=dredging_vessel,\n", - " destination=dump,\n", - " amount=7,\n", - " duration=10,\n", - " requested_resources=requested_resources,\n", - " ),\n", - " model.BasicActivity(\n", - " env=my_env,\n", - " name=\"basic activity\",\n", - " registry=registry,\n", - " duration=0,\n", - " additional_logs=[dredging_vessel],\n", - " ),\n", - "]\n", - "\n", - "\n", - "activities_dredging_vessel = model.WhileActivity(\n", - " env=my_env,\n", - " name=\"while\",\n", - " registry=registry,\n", - " sub_processes=[model.SequentialActivity(\n", - " env=my_env,\n", - " name=\"sequential_activity_dredging_vessel\",\n", - " registry=registry,\n", - " sub_processes=sub_processes_dredging\n", - " )],\n", - " condition_event=[{\"type\": \"soil\", \"concept\": dump, \"state\": \"full\", \"id_\":\"default_reservations\"}],\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "id": "0b386105", - "metadata": {}, - "outputs": [], - "source": [ - "requested_resources={}\n", - "\n", - "# create a list of the sub processes of seagoing vessel\n", - "sub_processes_seagoing = [\n", - " model.MoveActivity(\n", - " env=my_env,\n", - " name=\"sailing empty seagoing vessel\",\n", - " registry=registry,\n", - " mover=seagoing_vessel,\n", - " destination=berth,\n", - " ),\n", - " model.ShiftAmountActivity(\n", - " env=my_env,\n", - " name=\"loading container\",\n", - " registry=registry,\n", - " processor=seagoing_vessel,\n", - " origin=berth,\n", - " destination=seagoing_vessel,\n", - " amount=80,\n", - " id_=\"container\",\n", - " duration=50,\n", - " requested_resources=requested_resources,\n", - " ),\n", - " model.MoveActivity(\n", - " env=my_env,\n", - " name=\"sailing full seagoing vessel\",\n", - " registry=registry,\n", - " mover=seagoing_vessel,\n", - " destination=offshore,\n", - " ),\n", - " model.BasicActivity(\n", - " env=my_env,\n", - " name=\"basic activity\",\n", - " registry=registry,\n", - " duration=0,\n", - " additional_logs=[seagoing_vessel],\n", - " ),\n", - "]\n", - "\n", - "\n", - "activities_seagoing_vessel = model.WhileActivity(\n", - " env=my_env,\n", - " name=\"while\",\n", - " registry=registry,\n", - " sub_processes=[model.SequentialActivity(\n", - " env=my_env,\n", - " name=\"sequential_activity_seagoing_vessel\",\n", - " registry=registry,\n", - " sub_processes=sub_processes_seagoing\n", - " )],\n", - " condition_event=[{\"type\": \"container\", \"concept\": offshore, \"state\": \"full\", \"id_\":\"default_reservations\"}],\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "eb96460b", - "metadata": {}, - "outputs": [], - "source": [ - "simulation_process = openclsim.model.ParallelActivity(\n", - " env=my_env,\n", - " name=\"all activities\",\n", - " registry=registry,\n", - " sub_processes=[activities_dredging_vessel, activities_seagoing_vessel]\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "id": "6ac4b3d9", - "metadata": {}, - "outputs": [ - { - "ename": "AssertionError", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[110], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m model\u001b[39m.\u001b[39;49mregister_processes([simulation_process])\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\helpers.py:25\u001b[0m, in \u001b[0;36mregister_processes\u001b[1;34m(processes)\u001b[0m\n\u001b[0;32m 22\u001b[0m items \u001b[39m=\u001b[39m get_subprocesses(processes)\n\u001b[0;32m 24\u001b[0m item_names \u001b[39m=\u001b[39m [i\u001b[39m.\u001b[39mname \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m items]\n\u001b[1;32m---> 25\u001b[0m \u001b[39massert\u001b[39;00m \u001b[39mlen\u001b[39m(item_names) \u001b[39m==\u001b[39m \u001b[39mlen\u001b[39m(\u001b[39mset\u001b[39m(item_names))\n\u001b[0;32m 27\u001b[0m \u001b[39mfor\u001b[39;00m item \u001b[39min\u001b[39;00m items:\n\u001b[0;32m 28\u001b[0m item\u001b[39m.\u001b[39mmain_process \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n", - "\u001b[1;31mAssertionError\u001b[0m: " - ] - } - ], - "source": [ - "model.register_processes([simulation_process])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "da632d50", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "myenv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From eab07a554fc4b9d9192833423c7af3c2dfaa67e4 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Mon, 17 Apr 2023 09:58:52 +0200 Subject: [PATCH 047/100] update priority.py --- notebooks/14_SingleRun.ipynb | 2 +- notebooks/32_openclsim_opentnsim_moving.ipynb | 24 +- notebooks/33_Accessibility_Dredging.ipynb | 574 ++- ...Accessibility_Dredging_with_Priority.ipynb | 3833 +---------------- src/openclsim/core/__init__.py | 4 +- src/openclsim/core/priority.py | 12 +- 6 files changed, 701 insertions(+), 3748 deletions(-) diff --git a/notebooks/14_SingleRun.ipynb b/notebooks/14_SingleRun.ipynb index 1e07ceed..f30987d7 100644 --- a/notebooks/14_SingleRun.ipynb +++ b/notebooks/14_SingleRun.ipynb @@ -5735,7 +5735,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/notebooks/32_openclsim_opentnsim_moving.ipynb b/notebooks/32_openclsim_opentnsim_moving.ipynb index b99ce262..9f28544f 100644 --- a/notebooks/32_openclsim_opentnsim_moving.ipynb +++ b/notebooks/32_openclsim_opentnsim_moving.ipynb @@ -297,7 +297,15 @@ "execution_count": 11, "id": "485057d1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover vessel-01 destination to_site\n" + ] + } + ], "source": [ "# initate the simpy processes defined in the 'move activity' and run simpy\n", "openclsim.model.register_processes([activity])\n", @@ -348,14 +356,14 @@ " \n", " \n", " 0\n", - " 91436857-3045-49d8-b95b-6772669f6f11\n", + " ef9c3b84-d4c9-4148-9b4f-99af53413719\n", " 1970-01-01 00:00:00.000000\n", " START\n", " \n", " \n", " 1\n", - " 91436857-3045-49d8-b95b-6772669f6f11\n", - " 1970-01-01 00:32:16.644459\n", + " ef9c3b84-d4c9-4148-9b4f-99af53413719\n", + " 1970-01-01 00:15:42.824591\n", " STOP\n", " \n", " \n", @@ -364,8 +372,8 @@ ], "text/plain": [ " Activity Timestamp \\\n", - "0 91436857-3045-49d8-b95b-6772669f6f11 1970-01-01 00:00:00.000000 \n", - "1 91436857-3045-49d8-b95b-6772669f6f11 1970-01-01 00:32:16.644459 \n", + "0 ef9c3b84-d4c9-4148-9b4f-99af53413719 1970-01-01 00:00:00.000000 \n", + "1 ef9c3b84-d4c9-4148-9b4f-99af53413719 1970-01-01 00:15:42.824591 \n", "\n", " ActivityState \n", "0 START \n", @@ -383,9 +391,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "myenv", "language": "python", - "name": "python3" + "name": "myenv" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/33_Accessibility_Dredging.ipynb b/notebooks/33_Accessibility_Dredging.ipynb index dbacc935..21b19590 100644 --- a/notebooks/33_Accessibility_Dredging.ipynb +++ b/notebooks/33_Accessibility_Dredging.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "4f309f38", "metadata": {}, "outputs": [], @@ -73,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "651c0a4c", "metadata": {}, "outputs": [], @@ -93,10 +93,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "342c006e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of edges is 4\n", + "Number of edges is 4\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# we start with creating a graph \n", "graph = nx.DiGraph()\n", @@ -181,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "f7497055", "metadata": {}, "outputs": [], @@ -192,10 +221,347 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "5065dad1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m = folium.Map(location=[52.66, 4.43], zoom_start=8)\n", "\n", @@ -238,7 +604,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "387db4f8", "metadata": {}, "outputs": [], @@ -284,10 +650,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "e1f53375", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# example of how to find a location from the list of locations, based on a name \n", "[i for i, x in enumerate(locations) if x.name == 'offshore'][0]" @@ -295,7 +682,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "faa6445d", "metadata": {}, "outputs": [], @@ -335,7 +722,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "b4c3ddfa", "metadata": {}, "outputs": [], @@ -353,6 +740,7 @@ " \"unloading_rate\": 5,\n", " \"capacity\": 10,\n", " \"v\": 10,\n", + " \"priority\": 1,\n", " \"route\": nx.dijkstra_path(my_env.graph, 'berth', 'dump')\n", "}\n", "# instantiate vessel_01 \n", @@ -370,7 +758,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "dd2aa7de", "metadata": {}, "outputs": [], @@ -380,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "d586e52b", "metadata": {}, "outputs": [], @@ -400,7 +788,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "0039485e", "metadata": {}, "outputs": [], @@ -426,7 +814,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "f7820375", "metadata": {}, "outputs": [], @@ -462,7 +850,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "edefaf5e", "metadata": {}, "outputs": [], @@ -482,17 +870,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "6f03a6c5", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "single_run" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "cdfb07a6", "metadata": {}, "outputs": [], @@ -502,10 +917,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "22584049", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "('POINT (3.3597304 52.4400985)', 'POINT (3.3597304 52.4400985)')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "('POINT (3.3597304 52.4400985)', 'POINT (3.3597304 52.4400985)')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "shift_amount_activity = single_run[1]\n", "shift_amount_activity.processor.name\n", @@ -516,10 +952,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "a7571a7a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "('POINT (3.3597304 52.4400985)', 'POINT (3.3597304 52.4400985)')" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "('POINT (3.3597304 52.4400985)', 'POINT (3.3597304 52.4400985)')" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "dump_activity = single_run[3]\n", "dump_activity.processor.geometry.wkt, dump_activity.origin.geometry.wkt" @@ -527,10 +984,71 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "702f89e7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'TransportProcessingResource' object has no attribute 'unloading'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmain_process_function(activity_log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, env\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\shift_amount_activity.py:155\u001b[0m, in \u001b[0;36mShiftAmountActivity.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 154\u001b[0m start_shift \u001b[38;5;241m=\u001b[39m env\u001b[38;5;241m.\u001b[39mnow\n\u001b[1;32m--> 155\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_shift_amount(\n\u001b[0;32m 156\u001b[0m env,\n\u001b[0;32m 157\u001b[0m amount,\n\u001b[0;32m 158\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[0;32m 159\u001b[0m )\n\u001b[0;32m 161\u001b[0m activity_log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 162\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 163\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[0;32m 164\u001b[0m activity_state\u001b[38;5;241m=\u001b[39mcore\u001b[38;5;241m.\u001b[39mLogState\u001b[38;5;241m.\u001b[39mSTOP,\n\u001b[0;32m 165\u001b[0m )\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\shift_amount_activity.py:192\u001b[0m, in \u001b[0;36mShiftAmountActivity._shift_amount\u001b[1;34m(self, env, amount, activity_id)\u001b[0m\n\u001b[0;32m 190\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin\u001b[38;5;241m.\u001b[39mactivity_id \u001b[38;5;241m=\u001b[39m activity_id\n\u001b[1;32m--> 192\u001b[0m shiftamount_fcn \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_shiftamount_fcn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mamount\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 194\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprocessor\u001b[38;5;241m.\u001b[39mprocess(\n\u001b[0;32m 195\u001b[0m origin\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin,\n\u001b[0;32m 196\u001b[0m destination\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdestination,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 199\u001b[0m id_\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mid_,\n\u001b[0;32m 200\u001b[0m )\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\shift_amount_activity.py:208\u001b[0m, in \u001b[0;36mShiftAmountActivity._get_shiftamount_fcn\u001b[1;34m(self, amount)\u001b[0m\n\u001b[0;32m 207\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mphase \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munloading\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m--> 208\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m partial(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocessor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munloading\u001b[49m, amount\u001b[38;5;241m=\u001b[39mamount)\n\u001b[0;32m 209\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TransportProcessingResource' object has no attribute 'unloading'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmain_process_function(activity_log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, env\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\while_activity.py:53\u001b[0m, in \u001b[0;36mConditionProcessMixin.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 44\u001b[0m stop_event \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparse_expression(\n\u001b[0;32m 45\u001b[0m [\n\u001b[0;32m 46\u001b[0m {\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 51\u001b[0m ]\n\u001b[0;32m 52\u001b[0m )\n\u001b[1;32m---> 53\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m stop_event\n\u001b[0;32m 55\u001b[0m activity_log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 56\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 57\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 62\u001b[0m },\n\u001b[0;32m 63\u001b[0m )\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TransportProcessingResource' object has no attribute 'unloading'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[19], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# start the simulation\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[43mmy_env\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:254\u001b[0m, in \u001b[0;36mEnvironment.run\u001b[1;34m(self, until)\u001b[0m\n\u001b[0;32m 252\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 253\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 255\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m StopSimulation \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 256\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m exc\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;66;03m# == until.value\u001b[39;00m\n", + "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:206\u001b[0m, in \u001b[0;36mEnvironment.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 204\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(event\u001b[38;5;241m.\u001b[39m_value)(\u001b[38;5;241m*\u001b[39mevent\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39margs)\n\u001b[0;32m 205\u001b[0m exc\u001b[38;5;241m.\u001b[39m__cause__ \u001b[38;5;241m=\u001b[39m event\u001b[38;5;241m.\u001b[39m_value\n\u001b[1;32m--> 206\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TransportProcessingResource' object has no attribute 'unloading'" + ] + }, + { + "ename": "AttributeError", + "evalue": "'TransportProcessingResource' object has no attribute 'unloading'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmain_process_function(activity_log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, env\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\shift_amount_activity.py:155\u001b[0m, in \u001b[0;36mShiftAmountActivity.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 154\u001b[0m start_shift \u001b[38;5;241m=\u001b[39m env\u001b[38;5;241m.\u001b[39mnow\n\u001b[1;32m--> 155\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_shift_amount(\n\u001b[0;32m 156\u001b[0m env,\n\u001b[0;32m 157\u001b[0m amount,\n\u001b[0;32m 158\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[0;32m 159\u001b[0m )\n\u001b[0;32m 161\u001b[0m activity_log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 162\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 163\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[0;32m 164\u001b[0m activity_state\u001b[38;5;241m=\u001b[39mcore\u001b[38;5;241m.\u001b[39mLogState\u001b[38;5;241m.\u001b[39mSTOP,\n\u001b[0;32m 165\u001b[0m )\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\shift_amount_activity.py:192\u001b[0m, in \u001b[0;36mShiftAmountActivity._shift_amount\u001b[1;34m(self, env, amount, activity_id)\u001b[0m\n\u001b[0;32m 190\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin\u001b[38;5;241m.\u001b[39mactivity_id \u001b[38;5;241m=\u001b[39m activity_id\n\u001b[1;32m--> 192\u001b[0m shiftamount_fcn \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_shiftamount_fcn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mamount\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 194\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprocessor\u001b[38;5;241m.\u001b[39mprocess(\n\u001b[0;32m 195\u001b[0m origin\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39morigin,\n\u001b[0;32m 196\u001b[0m destination\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdestination,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 199\u001b[0m id_\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mid_,\n\u001b[0;32m 200\u001b[0m )\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\shift_amount_activity.py:208\u001b[0m, in \u001b[0;36mShiftAmountActivity._get_shiftamount_fcn\u001b[1;34m(self, amount)\u001b[0m\n\u001b[0;32m 207\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mphase \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munloading\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m--> 208\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m partial(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocessor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munloading\u001b[49m, amount\u001b[38;5;241m=\u001b[39mamount)\n\u001b[0;32m 209\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TransportProcessingResource' object has no attribute 'unloading'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmain_process_function(activity_log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, env\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\while_activity.py:53\u001b[0m, in \u001b[0;36mConditionProcessMixin.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 44\u001b[0m stop_event \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparse_expression(\n\u001b[0;32m 45\u001b[0m [\n\u001b[0;32m 46\u001b[0m {\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 51\u001b[0m ]\n\u001b[0;32m 52\u001b[0m )\n\u001b[1;32m---> 53\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m stop_event\n\u001b[0;32m 55\u001b[0m activity_log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 56\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 57\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 62\u001b[0m },\n\u001b[0;32m 63\u001b[0m )\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TransportProcessingResource' object has no attribute 'unloading'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[19], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# start the simulation\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[43mmy_env\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:254\u001b[0m, in \u001b[0;36mEnvironment.run\u001b[1;34m(self, until)\u001b[0m\n\u001b[0;32m 252\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 253\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 255\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m StopSimulation \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 256\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m exc\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;66;03m# == until.value\u001b[39;00m\n", + "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:206\u001b[0m, in \u001b[0;36mEnvironment.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 204\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(event\u001b[38;5;241m.\u001b[39m_value)(\u001b[38;5;241m*\u001b[39mevent\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39margs)\n\u001b[0;32m 205\u001b[0m exc\u001b[38;5;241m.\u001b[39m__cause__ \u001b[38;5;241m=\u001b[39m event\u001b[38;5;241m.\u001b[39m_value\n\u001b[1;32m--> 206\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TransportProcessingResource' object has no attribute 'unloading'" + ] + } + ], "source": [ "# start the simulation\n", "my_env.run()" @@ -625,9 +1143,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "myenv", "language": "python", - "name": "python3" + "name": "myenv" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb index 5a7c8f7f..40428a56 100644 --- a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb +++ b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb @@ -15,10 +15,24 @@ }, { "cell_type": "code", - "execution_count": 569, + "execution_count": 11, "id": "bd1db812", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ImportError", + "evalue": "cannot import name 'Location' from 'openclsim.core.priority' (C:\\Users\\asepehri\\github\\OpenCLSim\\src\\openclsim\\core\\priority.py)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[11], line 8\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mdatetime\u001b[39;00m\u001b[39m,\u001b[39m \u001b[39mtime\u001b[39;00m\n\u001b[0;32m 7\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39msimpy\u001b[39;00m\n\u001b[1;32m----> 8\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\n\u001b[0;32m 9\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopentnsim\u001b[39;00m\n\u001b[0;32m 11\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mpandas\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mpd\u001b[39;00m\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\__init__.py:3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Top-level package for OpenCLSim.\"\"\"\u001b[39;00m\n\u001b[1;32m----> 3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcore\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mcore\u001b[39;00m\n\u001b[0;32m 4\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmodel\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mmodel\u001b[39;00m\n\u001b[0;32m 5\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplot\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mplot\u001b[39;00m\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\__init__.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39msimpy_object\u001b[39;00m \u001b[39mimport\u001b[39;00m SimpyObject\n\u001b[0;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mpriority\u001b[39;00m \u001b[39mimport\u001b[39;00m Priority\n\u001b[1;32m---> 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mpriority\u001b[39;00m \u001b[39mimport\u001b[39;00m Location\n\u001b[0;32m 15\u001b[0m __all__ \u001b[39m=\u001b[39m [\n\u001b[0;32m 16\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mbasic\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 17\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mHasContainer\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mPriority\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 33\u001b[0m ]\n", + "\u001b[1;31mImportError\u001b[0m: cannot import name 'Location' from 'openclsim.core.priority' (C:\\Users\\asepehri\\github\\OpenCLSim\\src\\openclsim\\core\\priority.py)" + ] + } + ], "source": [ "import networkx as nx \n", "import shapely.geometry\n", @@ -38,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 570, + "execution_count": null, "id": "10df29e5", "metadata": {}, "outputs": [], @@ -50,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 571, + "execution_count": null, "id": "396aa906", "metadata": {}, "outputs": [ @@ -156,7 +170,7 @@ }, { "cell_type": "code", - "execution_count": 572, + "execution_count": null, "id": "f4953daf", "metadata": {}, "outputs": [], @@ -167,204 +181,7 @@ }, { "cell_type": "code", - "execution_count": 573, - "id": "f966ea96", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 573, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "m = folium.Map(location=[52.66, 4.43], zoom_start=8)\n", - "\n", - "folium.Marker(\n", - " [location_dump.y, location_dump.x ], \n", - " popup=\"Dump\", \n", - " tooltip=\"Dump\"\n", - ").add_to(m)\n", - "folium.Marker(\n", - " [location_offshore.y, location_offshore.x ], \n", - " popup=\"Offshore\", \n", - " tooltip=\"Offshore\"\n", - ").add_to(m)\n", - "folium.Marker(\n", - " [location_berth.y, location_berth.x ], \n", - " popup=\"Berth\", \n", - " tooltip=\"Berth\"\n", - ").add_to(m)\n", - "\n", - "m" - ] - }, - { - "cell_type": "code", - "execution_count": 574, + "execution_count": null, "id": "6408a82f", "metadata": {}, "outputs": [], @@ -383,19 +200,17 @@ ")\n", "\n", "# create a TransportProcessingResource object based on desired mixin classes\n", - "TransportProcessingResource = type(\n", + "Vessel_obj_01 = type(\n", " \"TransportProcessingResource\",\n", " (\n", - " opentnsim.core.Movable,\n", " openclsim.core.Identifiable,\n", " openclsim.core.Log,\n", + " openclsim.core.ContainerDependentMovable,\n", " openclsim.core.Processor,\n", " openclsim.core.HasResource,\n", " openclsim.core.LoadingFunction,\n", " openclsim.core.UnloadingFunction,\n", - "# # capture extra metadata to make sure we don't have leftover arguments\n", - " opentnsim.core.ExtraMetadata,\n", - " openclsim.core.Priority\n", + " openclsim.core.Priority,\n", " ),\n", " {},\n", ")" @@ -403,31 +218,74 @@ }, { "cell_type": "code", - "execution_count": 575, - "id": "eb96460b", + "execution_count": null, + "id": "197a7c04", "metadata": {}, "outputs": [], + "source": [ + "# data from_site\n", + "data_from_site = {\n", + " \"env\": my_env,\n", + " \"name\": berth,\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 100\n", + "}\n", + "# instantiate from_site \n", + "from_site = Site(**data_from_site)\n", + "\n", + "# data to_site\n", + "data_to_site = {\n", + " \"env\": my_env,\n", + " \"name\": dump,\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + "}\n", + "# instantiate to_site \n", + "to_site = Site(**data_to_site)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "eb96460b", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'my_env' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[5], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# prepare input data for vessel_01\u001b[39;00m\n\u001b[0;32m 2\u001b[0m data_vessel01 \u001b[39m=\u001b[39m {\n\u001b[1;32m----> 3\u001b[0m \u001b[39m\"\u001b[39m\u001b[39menv\u001b[39m\u001b[39m\"\u001b[39m: my_env,\n\u001b[0;32m 4\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mname\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39mvessel01\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 5\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mgeometry\u001b[39m\u001b[39m\"\u001b[39m: location_berth, \n\u001b[0;32m 6\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mloading_rate\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m1\u001b[39m,\n\u001b[0;32m 7\u001b[0m \u001b[39m\"\u001b[39m\u001b[39munloading_rate\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m5\u001b[39m,\n\u001b[0;32m 8\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcapacity\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m10\u001b[39m,\n\u001b[0;32m 9\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mtype\u001b[39m\u001b[39m\"\u001b[39m:\u001b[39m\"\u001b[39m\u001b[39mdredging_vessel\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 10\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mpriority\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m1\u001b[39m,\n\u001b[0;32m 11\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcontainer\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39msoil\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 12\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcompute_v\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39mlambda\u001b[39;00m x: \u001b[39m10\u001b[39m \u001b[39m+\u001b[39m \u001b[39m2\u001b[39m \u001b[39m*\u001b[39m x,\n\u001b[0;32m 13\u001b[0m }\n\u001b[0;32m 14\u001b[0m \u001b[39m# instantiate vessel_01 \u001b[39;00m\n\u001b[0;32m 15\u001b[0m vessel01 \u001b[39m=\u001b[39m Vessel_obj_01(\u001b[39m*\u001b[39m\u001b[39m*\u001b[39mdata_vessel01)\n", + "\u001b[1;31mNameError\u001b[0m: name 'my_env' is not defined" + ] + } + ], "source": [ "# prepare input data for vessel_01\n", "data_vessel01 = {\n", - " \"env\": my_env, # assigning the simpy environment\n", - " \"name\": \"dredging vessel\", # vessel 01 is the dredging vessel in the simulation\n", + " \"env\": my_env,\n", + " \"name\": \"vessel01\",\n", " \"geometry\": location_berth, \n", " \"loading_rate\": 1,\n", " \"unloading_rate\": 5,\n", " \"capacity\": 10,\n", - " #\"priority\": 1,\n", - " \"v\": 10,\n", - " \"route\": [berth, dump]\n", + " \"type\":\"dredging_vessel\",\n", + " \"priority\": 1,\n", + " \"container\": \"soil\",\n", + " \"compute_v\": lambda x: 10 + 2 * x,\n", "}\n", "# instantiate vessel_01 \n", - "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "vessel01 = Vessel_obj_01(**data_vessel01)\n", "# assert not vessel01.metadata" ] }, { "cell_type": "code", - "execution_count": 576, + "execution_count": null, "id": "2329f3f4", "metadata": {}, "outputs": [], @@ -438,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": 577, + "execution_count": null, "id": "6ac4b3d9", "metadata": {}, "outputs": [], @@ -465,23 +323,10 @@ }, { "cell_type": "code", - "execution_count": 578, + "execution_count": null, "id": "da632d50", "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "Due to recursion in the events of the activities, not all the activities can be registered.", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[578], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m openclsim\u001b[39m.\u001b[39;49mmodel\u001b[39m.\u001b[39;49mregister_processes([while_activity])\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\helpers.py:46\u001b[0m, in \u001b[0;36mregister_processes\u001b[1;34m(processes)\u001b[0m\n\u001b[0;32m 44\u001b[0m logger\u001b[39m.\u001b[39minfo(e)\n\u001b[0;32m 45\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m---> 46\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[0;32m 47\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mDue to recursion in the events of the activities, not all the activities \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 48\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcan be registered.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 49\u001b[0m )\n", - "\u001b[1;31mValueError\u001b[0m: Due to recursion in the events of the activities, not all the activities can be registered." - ] - } - ], + "outputs": [], "source": [ "openclsim.model.register_processes([while_activity])" ] @@ -496,26 +341,46 @@ "name": "stdout", "output_type": "stream", "text": [ - "mover dredging vessel destination dump\n" - ] - }, - { - "ename": "KeyError", - "evalue": "<__main__.Site object at 0x000002375EA9ABE0>", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[39m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[39m=\u001b[39menv\u001b[39m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[39m=\u001b[39mactivity_log\u001b[39m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[39myield from\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmain_process_function(activity_log\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m, env\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39menv)\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\move_activity.py:104\u001b[0m, in \u001b[0;36mMoveActivity.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmover\u001b[39m.\u001b[39mactivity_id \u001b[39m=\u001b[39m activity_log\u001b[39m.\u001b[39mid\n\u001b[1;32m--> 104\u001b[0m \u001b[39myield from\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmover\u001b[39m.\u001b[39mmove(\n\u001b[0;32m 105\u001b[0m destination\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdestination,\n\u001b[0;32m 106\u001b[0m engine_order\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mengine_order,\n\u001b[0;32m 107\u001b[0m duration\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mduration,\n\u001b[0;32m 108\u001b[0m )\n\u001b[0;32m 110\u001b[0m activity_log\u001b[39m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 111\u001b[0m t\u001b[39m=\u001b[39menv\u001b[39m.\u001b[39mnow,\n\u001b[0;32m 112\u001b[0m activity_id\u001b[39m=\u001b[39mactivity_log\u001b[39m.\u001b[39mid,\n\u001b[0;32m 113\u001b[0m activity_state\u001b[39m=\u001b[39mcore\u001b[39m.\u001b[39mLogState\u001b[39m.\u001b[39mSTOP,\n\u001b[0;32m 114\u001b[0m )\n", - "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:361\u001b[0m, in \u001b[0;36mMovable.move\u001b[1;34m(self, destination, engine_order, duration)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[39m# Check if vessel is at correct location - if not, move to location\u001b[39;00m\n\u001b[1;32m--> 361\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeometry \u001b[39m!=\u001b[39m nx\u001b[39m.\u001b[39;49mget_node_attributes(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mgraph, \u001b[39m\"\u001b[39;49m\u001b[39mgeometry\u001b[39;49m\u001b[39m\"\u001b[39;49m)[\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mroute[\u001b[39m0\u001b[39;49m]]:\n\u001b[0;32m 362\u001b[0m orig \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeometry\n", - "\u001b[1;31mKeyError\u001b[0m: <__main__.Site object at 0x000002375EA9ABE0>", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[568], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m my_env\u001b[39m.\u001b[39;49mrun()\n", - "File \u001b[1;32mc:\\Users\\asepehri\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:254\u001b[0m, in \u001b[0;36mEnvironment.run\u001b[1;34m(self, until)\u001b[0m\n\u001b[0;32m 252\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 253\u001b[0m \u001b[39mwhile\u001b[39;00m \u001b[39mTrue\u001b[39;00m:\n\u001b[1;32m--> 254\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mstep()\n\u001b[0;32m 255\u001b[0m \u001b[39mexcept\u001b[39;00m StopSimulation \u001b[39mas\u001b[39;00m exc:\n\u001b[0;32m 256\u001b[0m \u001b[39mreturn\u001b[39;00m exc\u001b[39m.\u001b[39margs[\u001b[39m0\u001b[39m] \u001b[39m# == until.value\u001b[39;00m\n", - "File \u001b[1;32mc:\\Users\\asepehri\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:206\u001b[0m, in \u001b[0;36mEnvironment.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 204\u001b[0m exc \u001b[39m=\u001b[39m \u001b[39mtype\u001b[39m(event\u001b[39m.\u001b[39m_value)(\u001b[39m*\u001b[39mevent\u001b[39m.\u001b[39m_value\u001b[39m.\u001b[39margs)\n\u001b[0;32m 205\u001b[0m exc\u001b[39m.\u001b[39m__cause__ \u001b[39m=\u001b[39m event\u001b[39m.\u001b[39m_value\n\u001b[1;32m--> 206\u001b[0m \u001b[39mraise\u001b[39;00m exc\n", - "\u001b[1;31mKeyError\u001b[0m: <__main__.Site object at 0x000002375EA9ABE0>" + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover vessel01 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover vessel01 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" ] } ], @@ -530,44 +395,15 @@ "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityState
\n", - "
" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [Activity, Timestamp, ActivityState]\n", - "Index: []" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "NameError", + "evalue": "name 'activity' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[103], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m display(openclsim\u001b[39m.\u001b[39mplot\u001b[39m.\u001b[39mget_log_dataframe(activity))\n", + "\u001b[1;31mNameError\u001b[0m: name 'activity' is not defined" + ] } ], "source": [ @@ -579,16 +415,7 @@ "execution_count": null, "id": "a2164d1a", "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (1783551121.py, line 11)", - "output_type": "error", - "traceback": [ - "\u001b[1;36m Cell \u001b[1;32mIn[517], line 11\u001b[1;36m\u001b[0m\n\u001b[1;33m \"route\": path, # required by Routeable\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" - ] - } - ], + "outputs": [], "source": [ "# define a path into and out of the habour\n", "path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", @@ -614,18 +441,7 @@ "execution_count": null, "id": "437ea3dd", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 206, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# specify the process that needs to be executed\n", "my_env.process(vessel02.move())" @@ -636,54 +452,7 @@ "execution_count": null, "id": "01ed80c7", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" - ] - } - ], + "outputs": [], "source": [ "# start the simulation\n", "my_env.run()" @@ -694,163 +463,7 @@ "execution_count": null, "id": "8132ea8d", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStategeometrycontainer level
0single_run sailing empty1970-01-01 00:00:00.000000STARTPOINT (4.062705498083785 51.95909715255291)0.0
1single_run sailing empty1970-01-01 00:00:00.000000STOPPOINT (4.062705498083785 51.95909715255291)0.0
2single_run loading1970-01-01 00:00:00.000000STARTPOINT (4.062705498083785 51.95909715255291)0.0
3single_run loading1970-01-01 00:00:10.000000STOPPOINT (4.062705498083785 51.95909715255291)10.0
4single_run sailing filled1970-01-01 00:00:10.000000STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
75single_run loading1970-01-01 08:49:59.864804STOPPOINT (4.062705498083785 51.95909715255291)10.0
76single_run sailing filled1970-01-01 08:49:59.864804STARTPOINT (4.062705498083785 51.95909715255291)10.0
77single_run sailing filled1970-01-01 09:16:39.958986STOPPOINT (4.1795229742823 52.11590591837503)10.0
78single_run unloading1970-01-01 09:16:39.958986STARTPOINT (4.1795229742823 52.11590591837503)10.0
79single_run unloading1970-01-01 09:16:41.958986STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", - "

80 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 single_run sailing empty 1970-01-01 00:00:00.000000 START \n", - "1 single_run sailing empty 1970-01-01 00:00:00.000000 STOP \n", - "2 single_run loading 1970-01-01 00:00:00.000000 START \n", - "3 single_run loading 1970-01-01 00:00:10.000000 STOP \n", - "4 single_run sailing filled 1970-01-01 00:00:10.000000 START \n", - ".. ... ... ... \n", - "75 single_run loading 1970-01-01 08:49:59.864804 STOP \n", - "76 single_run sailing filled 1970-01-01 08:49:59.864804 START \n", - "77 single_run sailing filled 1970-01-01 09:16:39.958986 STOP \n", - "78 single_run unloading 1970-01-01 09:16:39.958986 START \n", - "79 single_run unloading 1970-01-01 09:16:41.958986 STOP \n", - "\n", - " geometry container level \n", - "0 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - ".. ... ... \n", - "75 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - "76 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - "77 POINT (4.1795229742823 52.11590591837503) 10.0 \n", - "78 POINT (4.1795229742823 52.11590591837503) 10.0 \n", - "79 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "\n", - "[80 rows x 5 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "display(openclsim.plot.get_log_dataframe(vessel01, [*single_run, while_activity]))" ] @@ -860,3070 +473,7 @@ "execution_count": null, "id": "141ea4f9", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(109,34,97)", - "width": 10 - }, - "mode": "lines", - "name": "single_run", - "type": "scatter", - "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986" - ], - "y": [ - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null, - "single_run", - "single_run", - "single_run", - "single_run", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(137,62,125)", - "width": 10 - }, - "mode": "lines", - "name": "single_run sailing empty", - "type": "scatter", - "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(165,90,153)", - "width": 10 - }, - "mode": "lines", - "name": "single_run loading", - "type": "scatter", - "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(193,118,181)", - "width": 10 - }, - "mode": "lines", - "name": "single_run unloading", - "type": "scatter", - "x": [ - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(221,146,209)", - "width": 10 - }, - "mode": "lines", - "name": "single_run sailing filled", - "type": "scatter", - "x": [ - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(249,174,237)", - "width": 10 - }, - "mode": "lines", - "name": "single_run sailing empty", - "type": "scatter", - "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null, - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - "single_run sailing empty", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(21,202,9)", - "width": 10 - }, - "mode": "lines", - "name": "single_run loading", - "type": "scatter", - "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:58:52.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:44.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:36.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:28.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:21.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:13.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:05.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:50:57.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:49.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null, - "single_run loading", - "single_run loading", - "single_run loading", - "single_run loading", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(49,230,37)", - "width": 10 - }, - "mode": "lines", - "name": "single_run sailing filled", - "type": "scatter", - "x": [ - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T00:00:10", - "1970-01-01T00:00:10", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:59:02.207200", - "1970-01-01T00:59:02.207200", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:57:54.414401", - "1970-01-01T01:57:54.414401", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:56:46.621601", - "1970-01-01T02:56:46.621601", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:55:38.828802", - "1970-01-01T03:55:38.828802", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:54:31.036002", - "1970-01-01T04:54:31.036002", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:53:23.243203", - "1970-01-01T05:53:23.243203", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:52:15.450403", - "1970-01-01T06:52:15.450403", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:51:07.657604", - "1970-01-01T07:51:07.657604", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:49:59.864804", - "1970-01-01T08:49:59.864804", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null, - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - "single_run sailing filled", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(77,2,65)", - "width": 10 - }, - "mode": "lines", - "name": "single_run unloading", - "type": "scatter", - "x": [ - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:50.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T00:26:52.094182", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:42.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T01:25:44.301383", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:34.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T02:24:36.508583", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:26.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T03:23:28.715783", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:18.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T04:22:20.922984", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:11.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T05:21:13.130184", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:03.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T06:20:05.337385", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:55.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T07:18:57.544585", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:47.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T08:17:49.751786", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:39.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986", - "1970-01-01T09:16:41.958986" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null, - "single_run unloading", - "single_run unloading", - "single_run unloading", - "single_run unloading", - null - ] - } - ], - "layout": { - "hovermode": "closest", - "legend": { - "orientation": "h", - "x": 0, - "y": -0.2 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "GANTT Chart" - }, - "xaxis": { - "range": [ - "1970-01-01T00:00:00", - "1970-01-01T09:16:41.958986" - ], - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Time" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Activities" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "openclsim.plot.get_gantt_chart([while_activity, vessel01, *single_run])" ] @@ -3933,18 +483,7 @@ "execution_count": null, "id": "5205fc7f", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABHUAAAJGCAYAAADVrLkUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhC0lEQVR4nO3deXxU9b3/8fdMErIQEgQkCwRBy2oRVBQjWrdYtOqVal3xggqiP8FKUawUhGJRrrZWi6LUimBb0FZbl14VFyp4UWSJoLgUENkUk4gIISwhJOf3B5khgQCZ5EzO+X7P6/l40JpkcuYz+c45c877fJeQ4ziOAAAAAAAAYJSw1wUAAAAAAAAgdoQ6AAAAAAAABiLUAQAAAAAAMBChDgAAAAAAgIEIdQAAAAAAAAxEqAMAAAAAAGAgQh0AAAAAAAADJXpdQENUVVVp06ZNatGihUKhkNflAAAAAAAAuMJxHG3fvl25ubkKhw/fF8fIUGfTpk3Ky8vzugwAAAAAAIC42Lhxo9q3b3/YxxgZ6rRo0ULSvheYkZHhcTUAAAAAAADuKC0tVV5eXjT7OBwjQ53IkKuMjAxCHQAAAAAAYJ36TDfDRMkAAAAAAAAGItQBAAAAAAAwEKEOAAAAAACAgQh1AAAAAAAADESoAwAAAAAAYCBCHQAAAAAAAAMR6gAAAAAAABiIUAcAAAAAAMBAhDoAAAAAAAAGItQBAAAAAAAwEKEOAAAAAACAgQh1AAAAAAAADESoAwAAAAAAYCBCHQAAAAAAAAMR6gAAAAAAABiIUAcAAAAAAMBAhDoAAAAAAAAGItQBAAAAAAAwUMyhzrvvvqtLLrlEubm5CoVCeumll2r93HEcjR8/Xjk5OUpNTVVBQYFWr15d6zFbtmzRwIEDlZGRoZYtW2rIkCEqKytr1AsBAAAAAAAIkphDnR07dqhXr16aOnVqnT9/8MEHNWXKFE2bNk2LFi1S8+bN1b9/f+3evTv6mIEDB+rTTz/VW2+9pf/93//Vu+++q2HDhjX8VQAAAAAAAARMyHEcp8G/HArpxRdf1IABAyTt66WTm5urO+64Q3feeackadu2bcrKytLMmTN19dVX6/PPP1ePHj20ZMkS9enTR5I0Z84c/eQnP9FXX32l3NzcIz5vaWmpMjMztW3bNmVkZDS0fE+tKt6uktJydWyTpvZHpXldDgAAAAAAZtu5RfrmI6lZupR3itfVNFgsmYerc+qsXbtWRUVFKigoiH4vMzNTffv21cKFCyVJCxcuVMuWLaOBjiQVFBQoHA5r0aJFdW63vLxcpaWltf6Zbtq8Nbpu+iK9tuIbr0sBAAAAAMB833wk/WWA9L8jva6kybga6hQVFUmSsrKyan0/Kysr+rOioiK1bdu21s8TExPVqlWr6GMONHnyZGVmZkb/5eXluVm2J0KhkCSp4f2kAAAAAABAkBmx+tWYMWO0bdu26L+NGzd6XVKjhfdlOqoi1AEAAAAAAA3gaqiTnZ0tSSouLq71/eLi4ujPsrOzVVJSUuvne/fu1ZYtW6KPOVBycrIyMjJq/TNdKBrqkOoAAAAAANB4wbu+djXU6dSpk7KzszV37tzo90pLS7Vo0SLl5+dLkvLz87V161YVFhZGH/Pvf/9bVVVV6tu3r5vl+Fo4kuoAAAAAAAAXBed6OzHWXygrK9MXX3wR/Xrt2rVavny5WrVqpQ4dOmjkyJGaNGmSOnfurE6dOumee+5Rbm5udIWs7t2764ILLtBNN92kadOmqaKiQiNGjNDVV19dr5WvbBHtqcP4KwAAAAAA0AAxhzpLly7VOeecE/161KhRkqTBgwdr5syZuuuuu7Rjxw4NGzZMW7du1RlnnKE5c+YoJSUl+juzZs3SiBEjdN555ykcDuvyyy/XlClTXHg55ohOlOxxHQAAAAAAWCGA05vEHOqcffbZcg7zhwqFQrr33nt17733HvIxrVq10uzZs2N9aqtEOoMxpw4AAAAAAC4KzugrM1a/slGYJc0BAAAAAEAjEOp4JDKnzuF6PQEAAAAAgPoK3vU1oY5HwsypAwAAAABAHARn/BWhjseYUwcAAAAAADQEoY5HIj11WNEcAAAAAAAXBPD6mlDHI/vn1PG2DgAAAAAAYCZCHY+EmSgZAAAAAAD3hZhTB3HGRMkAAAAAAKAxCHW8Uh0cVjGpDgAAAAAALgje9TWhjkfoqQMAAAAAQDww/ApxFnmLsaQ5AAAAAABoCEIdj0R76pDpAAAAAADQeAG8wCbU8UiI1a8AAAAAAHAfq18h3kLMqQMAAAAAABqBUMcjzKkDAAAAAICbgnd9TajjkcicOqxoDgAAAAAAGoJQxyP759Txtg4AAAAAAOzCnDqIszATJQMAAAAA4J4AXl8T6ngkxJLmAAAAAACgEQh1PBIZfsVEyQAAAAAAuIglzRFvYZY0BwAAAAAAjUCo4xGWNAcAAAAAwE3Bu74m1PFIOLr8lbd1AAAAAABgF4ZfIc6YUwcAAAAAADQGoY5HIqtfVZHpAAAAAADQeAHsNEGo45FIZ7DgveUAAAAAAIAbCHU8Emb4FQAAAAAA7mNJc8RbiImSAQAAAABwUfAusAl1PEJPHQAAAAAA0BiEOl6p7qlDpgMAAAAAgJsYfoU4o6cOAAAAAAAuCuD1NaGOR0LVyWHw3nIAAAAAAMANhDoeifTUcQKYJAIAAAAAEDesfoV4C1e/yarIdAAAAAAAQAMQ6niFnjoAAAAAALgoeNfXhDoeoacOAAAAAABoDEIdj0RG+JHpAAAAAADgJubUQZyFq//yDL8CAAAAAMAFAby+JtTxSHRJ8+C95wAAAAAAgAsIdTwSWWGtilQHAAAAAAD3BGhJ80SvCwiqUPWb7PudFVqwerPH1aAuCeGQTuzQUilJCV6XAgAAAMAPqqqkr5dKe3Z4XQnqUvyJ1xU0OUIdjySG94U6n39TquumL/K4GhzKT09sp4ev6u11GQAAAAD84IPHpTfHel0FjiQUnEFJhDoeOf241jqry9EqLt3tdSmow/bde/X11l3auGWn16UAAAAA8Iut6/f9f1obKT3L21pQt3CCdMpQr6toMoQ6HmmZ1kzP3Hiq12XgEN74tEg3/6WQJecBAAAAHKzPjdK59NiB94LTJwmIQbh6ziMmsgYAAAAA+BWhDlCHyFzpZDoAAAAAorhAgM8Q6gB1CFfvGQ4HbQAAAACATxHqAHUIKTL8yuNCAAAAAPhPKHTkxwBNgFAHqEPkGO0wVTIAAACAKK4P4C+EOkAdohMlV3lcCAAAAAAAh0CoA9Rhf08dAAAAADgQw6/gD4Q6QB0iPXWYKBkAAAAA4FeEOkAdWNIcAAAAwEG4QIDPEOoAdQhF5tThoA0AAAAA8ClCHaAOzKkDAAAA4JBY0hw+QagD1CFMTx0AAAAAB+H6AP5CqAPUIRq8c8wGAAAAAPgUoQ5Qh3B1qENPHQAAAAAHY/gV/IFQB6hTZPiVx2UAAAAA8A9u+sJnCHWAOoSjEyVz0AYAAAAA+BOhDlCH6ETJVR4XAgAAAMB/WP0KPkGoA9SBYzQAAAAAwO8IdYA6sKQ5AAAAgINxfQB/IdQBDoNMBwAAAADgV4Q6QB3oqQMAAADg0JivAf5AqAPUIRRd/QoAAAAAqnHTFz5DqAPUIdJTx+GgDQAAAADwKUIdoA7RnjpkOgAAAAAOxOgr+AShDlCHcPVBmjl1AAAAAAB+RagD1CkyUbLHZQAAAADwES4Q4C+EOkAdwtHhVxy0AQAAAAD+RKgD1GH/RMkeFwIAAADAh5hUB/5AqAPUgSXNAQAAAByEu77wGUIdoA6RnjpMlAwAAAAA8CtCHeAwyHQAAAAAHCTE8Cv4A6EOUIdwmJ46AAAAAAB/I9QB6hDJ3Yl0AAAAAOzHFQL8hVAHqMP+1a84aAMAAAAA/IlQB6hDdPUrMh0AAAAAB2FOHfgDoQ5Qh0iow5w6AAAAAKK4PIDPEOoAdQhVJ+8cswEAAAAAfkWoA9QhXGP4FfPqAAAAAKiFJc3hE4Q6QB1CNQ7SZDoAAAAA9uHiAP5CqAPUIVwjeOewDQAAAADwI0IdoA41e+owWTIAAACA2hh+BX8g1AHqUHOILJkOAAAAAMCPCHWAOoTpqQMAAADgQFwbwGdcD3UqKyt1zz33qFOnTkpNTdVxxx2n3/zmN7VWEHIcR+PHj1dOTo5SU1NVUFCg1atXu10K0GB0pgQAAAAA+J3roc4DDzygJ554Qo899pg+//xzPfDAA3rwwQf16KOPRh/z4IMPasqUKZo2bZoWLVqk5s2bq3///tq9e7fb5QANQk8dAAAAAIfEkubwiUS3N/j+++/r0ksv1UUXXSRJ6tixo5599lktXrxY0r5eOo888ojGjRunSy+9VJL05z//WVlZWXrppZd09dVXu10SELOax+j3v/hOKUkJ3hWDQ+qSna62LVK8LgMAAMA95dulrwsZ5uNX27/xugKgFtdDndNPP11PPvmkVq1apS5duuijjz7SggUL9Pvf/16StHbtWhUVFamgoCD6O5mZmerbt68WLlxYZ6hTXl6u8vLy6NelpaVulw3UUrOnztA/L/WwEhzOUWlJWvSrAjVLZHowAABgidlXS+sXeF0FjiTE+Sf8wfVQ5+6771Zpaam6deumhIQEVVZW6r777tPAgQMlSUVFRZKkrKysWr+XlZUV/dmBJk+erIkTJ7pdKnBIzRLDuvmsYzV/5bdel4I6OI60sni7vt9ZoR3le9UssZnXJQEAALhj6/p9/39UJykpzdtaULfUo6RuF3ldBSApDqHO3//+d82aNUuzZ8/W8ccfr+XLl2vkyJHKzc3V4MGDG7TNMWPGaNSoUdGvS0tLlZeX51bJQJ3GXNhdYy7s7nUZqENVlaNjf/WaJImOyQAAwEo/e1pqd5LXVQDwOddDndGjR+vuu++ODqPq2bOn1q9fr8mTJ2vw4MHKzs6WJBUXFysnJyf6e8XFxerdu3ed20xOTlZycrLbpQIwVM05j5jIGgAAWIVzGwAxcH0g4M6dOxUO195sQkKCqqqqJEmdOnVSdna25s6dG/15aWmpFi1apPz8fLfLAWChUI1Uh/MeAAAAAEHlek+dSy65RPfdd586dOig448/XsuWLdPvf/973XjjjZL2XYyNHDlSkyZNUufOndWpUyfdc889ys3N1YABA9wuB4ClwiGpytm3oh4AAAAABJHroc6jjz6qe+65R7feeqtKSkqUm5urm2++WePHj48+5q677tKOHTs0bNgwbd26VWeccYbmzJmjlBSWJgZQP6FQSHIcVZHpAAAAG9Ucbw4AhxByDLzNXVpaqszMTG3btk0ZGRlelwPAA53HvqaKSkcLx5yrnMxUr8sBAABwx+97SKVfS8PmSbknel0NAA/Eknm4PqcOADSFyLw69NQBAAAAEFSEOgCMFOmQbGBnQwAAgHpg+BWAIyPUAWCkcHVPHTIdAABgFU5uAMSAUAeAkSJzB3LeAwAAACCoCHUAGCkcnVOHVAcAAFiI1a8A1AOhDgAjRefU8bQKAAAAt3F2A6D+CHUAGCly84qeOgAAAACCilAHgJFCTJQMAACsxvArAEdGqAPASOHoRMmkOgAAwCKc2wCIAaEOACOFohMle1wIAAAAAHiEUAeAkaI9dZhMEAAA2IjVrwDUA6EOACNFe+pUeVwIAACAq7hhBaD+CHUAGGn/kuac+AAAAAAIJkIdAEYKs/oVAAAAgIAj1AFgpFB09Stv6wAAAIgP5tQBcGSEOgCMFI6ufkWqAwAALMK5DYAYEOoAMBqnPQAAAACCilAHgJHC1UcveuoAAAArsaQ5gHog1AFgpJCYKBkAANiIkxsA9UeoA8BI4ehEyZz4AAAAAAgmQh0ARgpFJ0r2uBAAAIC4YPgVgCMj1AFgpBA9dQAAgI04twEQA0IdAEYK01MHAAAAQMAR6gAwUqRDssNkggAAwEasfgWgHgh1ABgp0lOHHsoAAMAunNwAqD9CHQBG2j+njrd1AAAAAIBXCHUAGGn/6lekOgAAwEYMvwJwZIQ6AIy0f04dAAAAi3DDCkAMCHUAGClcffSipw4AAACAoCLUAWCkUKSvDpkOAACwEatfAagHQh0ARgpXn+fQUwcAAABAUBHqADATS5oDAAArcXIDoP4IdQAYiZ46AAAAAIKOUAeAkSKjzKvIdAAAgJWYUwfAkRHqADBSOMSi5gAAwEL0QgYQA0IdAEaKhDr01AEAAAAQVIQ6AMwUWdGcUAcAANiIJc0B1AOhDgAjMVEyAACwE+c2AOqPUAeAkULVXXU47QEAAAAQVIQ6AIwUrj56OfTUAQAAVmL4FYAjS/S6AABoiEhPnf8UbVfr1Zs9rgZ1adOimbplZ3hdBgDgQN+vl7Z86XUVOJTKvV5XAMAghDoAjJRQPanOE/PW6Il5azyuBofy7E2nKf+41l6XAQCI2LFZevRkqarC60pwJEyUDKAeCHUAGOm6047RdzvKtbeS4Vd+tHHLTu3YU6mN3+9Uvgh1AMA3SjftC3RCCdLR3byuBoeS3VNqdazXVQAwAKEOACOd3yNL5/fI8roMHMKQmUs09z8lzGQNAH6V3la69X2vqwAANBITJQMAXBeq7jLOkvMAAABA/BDqAABcF5kGgEgHAPyGIzMA2IRQBwDguup5rOmpAwAAAMQRoQ4AwHWRJeeryHQAwKdYWQkAbECoAwBwXTjy6UJPHQDwF47LAGAVQh0AgOv2T5TscSEAAACAxQh1AACui3Tqd7gjDAD+FGL4FQDYgFAHAOC6MD11AAAAgLgj1AEAuI4lzQHArzgyA4BNCHUAAK6L9NRh+BUAAAAQP4Q6AADX7Z9Tx9MyAACHxJw6AGADQh0AgOv2r35FqgMAvsJxGQCsQqgDAHAdc+oAAAAA8UeoAwBwXbg61KGnDgD4FEuaA4AVCHUAAK4LKTJRsseFAAAOwIEZAGxCqAMAcF24+tOF1a8AAACA+CHUAQC4bv9EyR4XAgA4BIZfAYANCHUAAK5jSXMAAAAg/gh1AACuC7OkOQD4E4dlALAKoQ4AwHUsaQ4AAADEH6EOAMB1kZ46TJQMAD7FlDoAYAVCHQBA3JDpAIDfcGAGAJsQ6gAAXMecOgAAAED8EeoAAFzHnDoA4HeMvwIAGxDqAABcF66+VqCnDgAAABA/hDoAANeFohMle1wIAKA2DswAYBVCHQCA66LDr7h4AAAAAOKGUAcA4Lr9EyV7XAgAoG4h5tQBABsQ6gAAXBe5VKCjDgD4DQdmALAJoQ4AwHUsaQ4AAADEH6EOAMB19OoHAL/jQA0ANiDUAQC4LkRPHQAAACDuCHUAAK5jTh0A8CkOzABgFUIdAIDrmFMHAAAAiD9CHQCA6yJz6hDpAIBPMfkZAFiBUAcA4LpwJNShpw4A+AzHZQCwCaEOAMB1kYmSyXQAAACA+CHUAQC4LtKrnzl1AMCvGH4FADYg1AEAuC6kyETJHhcCAKiNsB0ArEKoAwBw3f45dbytAwAAALAZoQ4AwHXh6Jw6pDoA4EusfgUAViDUAQC4jiXNAQAAgPgj1AEAuC6y+hUTJQOA33BcBgCbxCXU+frrr3XdddepdevWSk1NVc+ePbV06dLozx3H0fjx45WTk6PU1FQVFBRo9erV8SgFAOCBSKd+Mh0AAAAgflwPdb7//nv169dPSUlJev311/XZZ5/poYce0lFHHRV9zIMPPqgpU6Zo2rRpWrRokZo3b67+/ftr9+7dbpcDAPBAmCXNAcDnmFMHAGyQ6PYGH3jgAeXl5WnGjBnR73Xq1Cn6347j6JFHHtG4ceN06aWXSpL+/Oc/KysrSy+99JKuvvpqt0sCADSxyPCrku3lWrB6s8fVoC5JCSGddMxRSkpgJDZc5jjSpmXS7m1eV4K6lHzmdQUAABe5Huq88sor6t+/v6644grNnz9f7dq106233qqbbrpJkrR27VoVFRWpoKAg+juZmZnq27evFi5cWGeoU15ervLy8ujXpaWlbpcNAHBRQnVXncVrt+i66Ys8rgaHcmO/Thp/SQ+vy4BtPv6b9OLNXleBIwkR6AKADVwPdb788ks98cQTGjVqlH71q19pyZIl+vnPf65mzZpp8ODBKioqkiRlZWXV+r2srKzozw40efJkTZw40e1SAQBxcm63tjr9uNbasmOP16WgDt/v3KPi0nJt/H6n16XARt+v3/f/KS2ljHaeloJDCIWlU2/yugoAgAtcD3WqqqrUp08f3X///ZKkE088UZ988ommTZumwYMHN2ibY8aM0ahRo6Jfl5aWKi8vz5V6AQDuy22Zqtk3neZ1GTiEZxdv0Jh/rmAia8TXDy+TLn7Y6yoAALCa6/0uc3Jy1KNH7a7c3bt314YNGyRJ2dnZkqTi4uJajykuLo7+7EDJycnKyMio9Q8AADRMZCJrh1QHccH7CgCApuJ6qNOvXz+tXLmy1vdWrVqlY445RtK+SZOzs7M1d+7c6M9LS0u1aNEi5efnu10OAAA4QKh61RsuvQEAAMzm+vCrX/ziFzr99NN1//3368orr9TixYv15JNP6sknn5S0b0WUkSNHatKkSercubM6deqke+65R7m5uRowYIDb5QAAgAOEWHIeAADACq6HOqeccopefPFFjRkzRvfee686deqkRx55RAMHDow+5q677tKOHTs0bNgwbd26VWeccYbmzJmjlJQUt8sBAAAHiCw5X0Wmg7gKeV0AAADWcz3UkaSLL75YF1988SF/HgqFdO+99+ree++Nx9MDAIDDYE4dxBXvKwAAmozrc+oAAAB/C1f31OHaGwAAwGyEOgAABExkTh2HqZIRTyGGXwEAEG+EOgAABEx0Tp0qjwuBpQgLAQBoKoQ6AAAETKT/BD11AAAAzEaoAwBAwIRZ/QpNguFXAADEG6EOAAABE9rfVQdwHzNwAwDQZAh1AAAImMiS5lVcfAMAABgt0esCAABAU6te0tzjKmA5Vr8C4GOVlZWqqKjwugwEVFJSkhISElzZFqEOAAABQ08dxBfvKwD+5TiOioqKtHXrVq9LQcC1bNlS2dnZ0VVJG4pQBwCAgAkxUTIAIKAigU7btm2VlpbW6AtqIFaO42jnzp0qKSmRJOXk5DRqe4Q6AAAETDg6UTKpDuKJCyUA/lJZWRkNdFq3bu11OQiw1NRUSVJJSYnatm3bqKFYTJQMAEDAsKQ54oqwEIBPRebQSUtL87gSYP/7sLFzOxHqAAAQNNUdKBzmPgEABBBDruAHbr0PCXUAAAiYaE+dKo8LAQAAQKMQ6gAAEDDRKXU8rQLW4044AABxR6gDAEDARHrqOMx9grjgfQUAbjr77LM1cuTIJnu+devWKRQKafny5U32nGg4Qh0AAAIm0oGCTAcAgGC7/vrrNWDAAK/LQCOwpDkAAAETCXWqSHUQVwy/AgC/qqysZMJoS9BTBwCAgAlVX2wT6SAuCAsBGMJxHO3cs9eTf7EOgd67d69GjBihzMxMtWnTRvfcc0+tbZSXl+vOO+9Uu3bt1Lx5c/Xt21fz5s2L/nzmzJlq2bKlXnnlFfXo0UPJycm68cYb9cwzz+jll19WKBRSKBSq9TtffvmlzjnnHKWlpalXr15auHBhY//kiAN66gAAEDBheuoAAKBdFZXqMf4NT577s3v7K61Z/S/Hn3nmGQ0ZMkSLFy/W0qVLNWzYMHXo0EE33XSTJGnEiBH67LPP9Nxzzyk3N1cvvviiLrjgAq1YsUKdO3eWJO3cuVMPPPCAnnrqKbVu3Vo5OTnatWuXSktLNWPGDElSq1attGnTJknS2LFj9bvf/U6dO3fW2LFjdc011+iLL75QYiIxgp/QGgAABEwoOlGyx4XAbnTrBwDX5OXl6eGHH1YoFFLXrl21YsUKPfzww7rpppu0YcMGzZgxQxs2bFBubq4k6c4779ScOXM0Y8YM3X///ZKkiooKPf744+rVq1d0u6mpqSovL1d2dvZBz3nnnXfqoosukiRNnDhRxx9/vL744gt169atCV4x6otQBwCAgAlHJ0om1UE88L4CYIbUpAR9dm9/z547FqeddlqtOXDy8/P10EMPqbKyUitWrFBlZaW6dOlS63fKy8vVunXr6NfNmjXTCSecUO/nrPnYnJwcSVJJSQmhjs8Q6gAAEDCRk8Iqrr0BAAEWCoViGgLlV2VlZUpISFBhYaESEmqHRenp6dH/Tk1NjWly5KSkpOh/R88dqqoaWS3cZv47GAAAxCS6pDk9KhBXDL8CALcsWrSo1tcffPCBOnfurISEBJ144omqrKxUSUmJzjzzzJi226xZM1VWVrpZKpoYq18BABAw4ejdNo8LgZ0Y1gcArtuwYYNGjRqllStX6tlnn9Wjjz6q22+/XZLUpUsXDRw4UIMGDdI///lPrV27VosXL9bkyZP16quvHna7HTt21Mcff6yVK1dq8+bNqqioaIqXAxfRUwcAgICh/wQAAGYZNGiQdu3apVNPPVUJCQm6/fbbNWzYsOjPZ8yYoUmTJumOO+7Q119/rTZt2ui0007TxRdffNjt3nTTTZo3b5769OmjsrIyvfPOO+rYsWOcXw3cFHIMnCWxtLRUmZmZ2rZtmzIyMrwuBwAAo6z4apsueWyBcjJTtHDMeV6XA9u8NUF67xEpf4TU/z6vqwGAqN27d2vt2rXq1KmTUlJSvC4HAXe492MsmQfDrwAACJjonDrG3daBGXhjAQDQVAh1AAAImEioU0WqAwAAYDRCHQAAAiZUPasOkQ4AAIDZCHUAAAiYcPWnv4HT6gEAAKAGQh0AAAIm2lOHTAfxwBsLAIAmQ6gDAEDAhJlTBwAAwAqEOgAABMz+iZK9rQOWi7zRAABA3BDqAAAQMKFQZPgVqQ7igfcVAABNhVAHAICACYeYUwcAAJOdffbZGjlypNdlwAcIdQAACJjIoBgyHcQXw68AAIg3Qh0AAAIm0lOHiZIRF7yvAABoMoQ6AAAETGT+Wq69AQDwvx07dmjQoEFKT09XTk6OHnrooYMeEwqF9NJLL9X6XsuWLTVz5kxJ0rp16xQKhfT3v/9dZ555plJTU3XKKado1apVWrJkifr06aP09HRdeOGF+vbbb6PbuP766zVgwABNnDhRRx99tDIyMnTLLbdoz5498XzJiEGi1wUAAICmFWJJczQFVr8C4HeOI1Xs9Oa5k9LqfZwcPXq05s+fr5dffllt27bVr371K3344Yfq3bt3zE87YcIEPfLII+rQoYNuvPFGXXvttWrRooX+8Ic/KC0tTVdeeaXGjx+vJ554Ivo7c+fOVUpKiubNm6d169bphhtuUOvWrXXffffF/PxwH6EOAAABE1n9qrLK0YLVmz2uJnbhvbvVYvMyyanyupS46tg6TS1SDDxV27bR6woAoH4qdkr353rz3L/aJDVrfsSHlZWVafr06frrX/+q8847T5L0zDPPqH379g162jvvvFP9+/eXJN1+++265pprNHfuXPXr10+SNGTIkGjvnohmzZrp6aefVlpamo4//njde++9Gj16tH7zm98oHGbwj9cMPFMAAACNkRjeF+rsrXJ03fRFHlcTu8eTHtHpCYu9LgNHEuJEHwAaa82aNdqzZ4/69u0b/V6rVq3UtWvXBm3vhBNOiP53VlaWJKlnz561vldSUlLrd3r16qW0tLTo1/n5+SorK9PGjRt1zDHHNKgOuIdQBwCAgGnbIlnXnJqnZRu2el1Kg3Te/p1UKRWH2mpnKO3Iv2AYR47K91YpJKlbdobX5TRMcrp0/GVeVwEAh5eUtq/HjFfP7aJQKCTngGHVFRUVBz9tUlKt36nre1VVdveEtQ2hDgAAARMKhTT5shOO/EC/+mO69I2Ude0TUucCr6tx3eaycvWZ9LYkad2tF3lcDQBYLBSq1xAoLx133HFKSkrSokWL1KFDB0nS999/r1WrVumss86KPu7oo4/WN998E/169erV2rnTnfmCPvroI+3atUupqamSpA8++EDp6enKy8tzZftoHEIdAAAAHwnXmDjTcZzonVQAQPCkp6dryJAhGj16tFq3bq22bdtq7NixB81lc+655+qxxx5Tfn6+Kisr9ctf/rJWD5zG2LNnj4YMGaJx48Zp3bp1mjBhgkaMGMF8Oj5BqAMAAMxi+apdNSMcx2ERKQAIut/+9rcqKyvTJZdcohYtWuiOO+7Qtm3baj3moYce0g033KAzzzxTubm5+sMf/qDCwkJXnv+8885T586d9aMf/Ujl5eW65ppr9Otf/9qVbaPxQs6BA+8MUFpaqszMTG3btk0ZGYaONQcAAA0z7Uyp6GNp4D+sHH61bWeFet37piTpi/suVGICd0IBwA27d+/W2rVr1alTJ6WkpHhdjhGuv/56bd26VS+99JLXpVjncO/HWDIPzhIAAICZbO3BUuN1VRl36w0AADQlQh0AAGAYu5OOcI1Qx7H8tQIAgMZhTh0AAAAfqT1RsoeFAAACb+bMmV6XgCOgpw4AADCUneOvak6MTKgDAAAOh1AHAADAR2r21Kki1QEAAIdBqAMAAMwSoJwjQC8VAAA0AKEOAACAj9BTBwAA1BehDgAAMFOIOXUAAECwEeoAAADD2J101F79yu7XCgAAGodQBwAAwEdq9j8i0wEA1OXss8/WyJEj47Ltjh076pFHHqn349etW6dQKKTly5fHpR5TxLNNDiexyZ8RAADAFfYPv2JOHQCA3+Xl5embb75RmzZtvC4lkOipAwAAzGJ50BGqNVGyh4UAAIy1Z8+eJnuuhIQEZWdnKzGRPiNeINQBAADwmXB1ruNYPn8QAODIduzYoUGDBik9PV05OTl66KGHDnpMx44d9Zvf/EaDBg1SRkaGhg0bJklasGCBzjzzTKWmpiovL08///nPtWPHjujvlZSU6JJLLlFqaqo6deqkWbNmHbTt//znPzrjjDOUkpKiHj166O2331YoFNJLL70k6eDhV/PmzVMoFNLcuXPVp08fpaWl6fTTT9fKlStrbXfSpElq27atWrRooaFDh+ruu+9W79696/wbVFVVqX379nriiSdqfX/ZsmUKh8Nav369JGnr1q0aOnSojj76aGVkZOjcc8/VRx99FH38Rx99pHPOOUctWrRQRkaGTj75ZC1dulSStH79el1yySU66qij1Lx5cx1//PF67bXXor/7ySef6MILL1R6erqysrL03//939q8eXOd9TYlQh0AAGAmS1e/kvZPlmx5pyQA8JTjONpZsdOTf7FMhD969GjNnz9fL7/8st58803NmzdPH3744UGP+93vfqdevXpp2bJluueee7RmzRpdcMEFuvzyy/Xxxx/rb3/7mxYsWKARI0ZEf+f666/Xxo0b9c477+iFF17Q448/rpKSkujPKysrNWDAAKWlpWnRokV68sknNXbs2HrVPXbsWD300ENaunSpEhMTdeONN0Z/NmvWLN1333164IEHVFhYqA4dOhwU2NQUDod1zTXXaPbs2bW+P2vWLPXr10/HHHOMJOmKK65QSUmJXn/9dRUWFuqkk07Seeedpy1btkiSBg4cqPbt22vJkiUqLCzU3XffraSkJEnS8OHDVV5ernfffVcrVqzQAw88oPT0dEn7wqJzzz1XJ554opYuXao5c+aouLhYV155Zb3+FvFE/ygAAACfieRVhDoAED+79u5S39l9PXnuRdcuUlpS2hEfV1ZWpunTp+uvf/2rzjvvPEnSM888o/bt2x/02HPPPVd33HFH9OuhQ4dq4MCB0cl7O3furClTpuiss87SE088oQ0bNuj111/X4sWLdcopp0iSpk+fru7du0e38dZbb2nNmjWaN2+esrOzJUn33Xefzj///CPWft999+mss86SJN1999266KKLtHv3bqWkpOjRRx/VkCFDdMMNN0iSxo8frzfffFNlZWWH3N7AgQP10EMPacOGDerQoYOqqqr03HPPady4cZL29UpavHixSkpKlJycLGlf0PXSSy/phRde0LBhw7RhwwaNHj1a3bp1i/5NIjZs2KDLL79cPXv2lCQde+yx0Z899thjOvHEE3X//fdHv/f0008rLy9Pq1atUpcuXY7494gXeuoAAADD2J90RObVYaJkAAi2NWvWaM+ePerbd3/41KpVK3Xt2vWgx/bp06fW1x999JFmzpyp9PT06L/+/furqqpKa9eu1eeff67ExESdfPLJ0d/p1q2bWrZsGf165cqVysvLiwY6knTqqafWq/YTTjgh+t85OTmSFO0FtHLlyoO2c6Tt9u7dW927d4/21pk/f75KSkp0xRVXRF9vWVmZWrduXes1r127VmvWrJEkjRo1SkOHDlVBQYH+53/+J/p9Sfr5z3+uSZMmqV+/fpowYYI+/vjj6M8++ugjvfPOO7W2GwmGam7DC/TUAQAA8JnIwDIiHQCIn9TEVC26dpFnz+225s2b1/q6rKxMN998s37+858f9NgOHTpo1apVrtdQU2RYk1TjZkVVVaO2OXDgQM2ePVt33323Zs+erQsuuECtW7eWtO/15uTkaN68eQf9XiSo+vWvf61rr71Wr776ql5//XVNmDBBzz33nH76059q6NCh6t+/v1599VW9+eabmjx5sh566CHddtttKisr0yWXXKIHHnjgoG1HAiuvEOoAAABD2T+nThXLXwFA3IRCoXoNgfLScccdp6SkJC1atEgdOnSQJH3//fdatWpVdGjToZx00kn67LPP9IMf/KDOn3fr1k179+5VYWFhdPjVypUrtXXr1uhjunbtqo0bN6q4uFhZWVmSpCVLljT6dXXt2lVLlizRoEGDot+rz3avvfZajRs3ToWFhXrhhRc0bdq06M9OOukkFRUVKTExUR07djzkNrp06aIuXbroF7/4ha655hrNmDFDP/3pTyXtW579lltu0S233KIxY8boT3/6k2677TaddNJJ+sc//qGOHTv6bpUvhl8BAACzBGBIksVzQAMAYpCenq4hQ4Zo9OjR+ve//61PPvlE119/vcLhI1/K//KXv9T777+vESNGaPny5Vq9erVefvnl6ETJXbt21QUXXKCbb75ZixYtUmFhoYYOHarU1P29iM4//3wdd9xxGjx4sD7++GO999570TlsQo34sLrttts0ffp0PfPMM1q9erUmTZqkjz/++Ijb7Nixo04//XQNGTJElZWV+q//+q/ozwoKCpSfn68BAwbozTff1Lp16/T+++9r7NixWrp0qXbt2qURI0Zo3rx5Wr9+vd577z0tWbIkOofQyJEj9cYbb2jt2rX68MMP9c4770R/Nnz4cG3ZskXXXHONlixZojVr1uiNN97QDTfcoMrKygb/HdxAqAMAAOAzYebUAQBU++1vf6szzzxTl1xyiQoKCnTGGWfUmgfnUE444QTNnz9fq1at0plnnqkTTzxR48ePV25ubvQxM2bMUG5urs466yxddtllGjZsmNq2bRv9eUJCgl566SWVlZXplFNO0dChQ6OrX6WkpDT4NQ0cOFBjxozRnXfeqZNOOklr167V9ddfX69tDhw4UB999JF++tOf1gqgQqGQXnvtNf3oRz/SDTfcoC5duujqq6/W+vXrlZWVpYSEBH333XcaNGiQunTpoiuvvFIXXnihJk6c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kFOf6MdnqqqqtGnTJrVo0UKhUMjrchqktLRUeXl52rhxozIyMrwuB4dBW5mBdjID7WQO2soMtJMZaCdz0FZmoJ3MQDs1nOM42r59u3JzcxUOH37WHCN76oTDYbVv397rMlyRkZHBG9wQtJUZaCcz0E7moK3MQDuZgXYyB21lBtrJDLRTwxyph04EEyUDAAAAAAAYiFAHAAAAAADAQIQ6HklOTtaECROUnJzsdSk4AtrKDLSTGWgnc9BWZqCdzEA7mYO2MgPtZAbaqWkYOVEyAAAAAABA0NFTBwAAAAAAwECEOgAAAAAAAAYi1AEAAAAAADAQoQ4AAAAAAICBCHUAAAAAAAAMRKhTberUqerYsaNSUlLUt29fLV68uNbPn3zySZ199tnKyMhQKBTS1q1b67XdDRs26KKLLlJaWpratm2r0aNHa+/evdGff/PNN7r22mvVpUsXhcNhjRw50pXtStK8efN00kknKTk5WT/4wQ80c+bMem3b72xrq4Zu1+9sa6d//vOfOv/883X00UcrIyND+fn5euONN+q1bT+zrZ0WLFigfv36qXXr1kpNTVW3bt308MMP12vbfmdbW9X03nvvKTExUb17967Xtv3MtnaaN2+eQqHQQf+KiorqtX2/sq2dJKm8vFxjx47VMccco+TkZHXs2FFPP/10vbbvZ7a11fXXX1/nPnX88cfXa/t+ZVs7SdKsWbPUq1cvpaWlKScnRzfeeKO+++67em3fr2xsp6lTp6p79+5KTU1V165d9ec//7le27YJoY6kv/3tbxo1apQmTJigDz/8UL169VL//v1VUlISfczOnTt1wQUX6Fe/+lW9t1tZWamLLrpIe/bs0fvvv69nnnlGM2fO1Pjx46OPKS8v19FHH61x48apV69erm137dq1uuiii3TOOedo+fLlGjlypIYOHWr8RaiNbdWQ7fqdje307rvv6vzzz9drr72mwsJCnXPOObrkkku0bNmyetfvNza2U/PmzTVixAi9++67+vzzzzVu3DiNGzdOTz75ZL3r9yMb2ypi69atGjRokM4777x61+1XNrfTypUr9c0330T/tW3btt71+42t7XTllVdq7ty5mj59ulauXKlnn31WXbt2rXf9fmRjW/3hD3+otS9t3LhRrVq10hVXXFHv+v3GxnZ67733NGjQIA0ZMkSffvqpnn/+eS1evFg33XRTvev3Gxvb6YknntCYMWP061//Wp9++qkmTpyo4cOH61//+le967eCA+fUU091hg8fHv26srLSyc3NdSZPnnzQY9955x1HkvP9998fcbuvvfaaEw6HnaKiouj3nnjiCScjI8MpLy8/6PFnnXWWc/vtt7uy3bvuuss5/vjja/3eVVdd5fTv3/+I2/czG9uqIdv1O9vbKaJHjx7OxIkTj7h9vwpKO/30pz91rrvuuiNu389sbqurrrrKGTdunDNhwgSnV69eR9y2n9nYTrHUaQob2+n11193MjMzne++++6I2zOJjW11oBdffNEJhULOunXrjrh9v7KxnX772986xx57bK3fmzJlitOuXbsjbt+vbGyn/Px8584776z1e6NGjXL69et3xO3bJPA9dfbs2aPCwkIVFBREvxcOh1VQUKCFCxc2atsLFy5Uz549lZWVFf1e//79VVpaqk8//TSu2124cGGt1xR5TGNfk5dsbSvbBKWdqqqqtH37drVq1arBz+uloLTTsmXL9P777+uss85q8PN6zea2mjFjhr788ktNmDChwc/lFza3kyT17t1bOTk5Ov/88/Xee+81+Dm9Zms7vfLKK+rTp48efPBBtWvXTl26dNGdd96pXbt2NfwFeczWtjrQ9OnTVVBQoGOOOabBz+slW9spPz9fGzdu1GuvvSbHcVRcXKwXXnhBP/nJTxr+gjxkazuVl5crJSWl1u+lpqZq8eLFqqioaPBzmybwoc7mzZtVWVlZ680iSVlZWY0eL15UVFTndiM/i+d2D/WY0tJSYz/gbW0r2wSlnX73u9+prKxMV155ZYOf10u2t1P79u2VnJysPn36aPjw4Ro6dGiDn9drtrbV6tWrdffdd+uvf/2rEhMTG/xcfmFrO+Xk5GjatGn6xz/+oX/84x/Ky8vT2WefrQ8//LDBz+slW9vpyy+/1IIFC/TJJ5/oxRdf1COPPKIXXnhBt956a4Of12u2tlVNmzZt0uuvv85n1CF42U79+vXTrFmzdNVVV6lZs2bKzs5WZmampk6d2uDn9ZKt7dS/f3899dRTKiwslOM4Wrp0qZ566ilVVFRo8+bNDX5u0wQ+1HHLhRdeqPT0dKWnpxs/0ZntaCsz+LmdZs+erYkTJ+rvf/+70fNKuMGv7fR///d/Wrp0qaZNm6ZHHnlEzz77rNclec5PbVVZWalrr71WEydOVJcuXTytxW/81E6S1LVrV9188806+eSTdfrpp+vpp5/W6aefbs0E5A3lt3aqqqpSKBTSrFmzdOqpp+onP/mJfv/73+uZZ54x9maeW/zWVjU988wzatmypQYMGOB1KZ7zWzt99tlnuv322zV+/HgVFhZqzpw5WrdunW655RavS/OU39rpnnvu0YUXXqjTTjtNSUlJuvTSSzV48GBJ+3oiBYX5t8YaqU2bNkpISFBxcXGt7xcXFys7O7ve23nqqaeiH5pJSUmSpOzs7INmFI88TyzbPlB9tpudnV3na8rIyFBqamqDn9tLtraVbWxvp+eee05Dhw7V888/f9AQR5PY3k6dOnWSJPXs2VPFxcX69a9/rWuuuabBz+0lG9tq+/btWrp0qZYtW6YRI0ZI2ndR6jiOEhMT9eabb+rcc89t8PN7wcZ2OpRTTz1VCxYsaPDzesnWdsrJyVG7du2UmZkZfUz37t3lOI6++uorde7cucHP7xVb2yrCcRw9/fTT+u///m81a9aswc/pNVvbafLkyerXr59Gjx4tSTrhhBPUvHlznXnmmZo0aZJycnIa/PxesLWdUlNT9fTTT+uPf/yjiouLlZOToyeffFItWrTQ0Ucf3eDnNk1w4qtDaNasmU4++WTNnTs3+r2qqirNnTtX+fn59d5Ou3bt9IMf/EA/+MEPomNi8/PztWLFilozir/11lvKyMhQjx49Glxzfbabn59f6zVFHhPLa/IbW9vKNja307PPPqsbbrhBzz77rC666KIGP58f2NxOB6qqqlJ5eXmDn9drNrZVRkaGVqxYoeXLl0f/3XLLLeratauWL1+uvn37Nvi5vWJjOx3K8uXLjbugibC1nfr166dNmzaprKws+phVq1YpHA6rffv2DX5uL9naVhHz58/XF198oSFDhjT4+fzA1nbauXPnQT09EhISJO0L5ExjaztFJCUlqX379kpISNBzzz2niy++OFA9dVj9ynGc5557zklOTnZmzpzpfPbZZ86wYcOcli1b1ppp+5tvvnGWLVvm/OlPf3IkOe+++66zbNmyw64ysHfvXueHP/yh8+Mf/9hZvny5M2fOHOfoo492xowZU+txy5Ytc5YtW+acfPLJzrXXXussW7bM+fTTTxu13S+//NJJS0tzRo8e7Xz++efO1KlTnYSEBGfOnDmN+Et5z8a2ash2/c7Gdpo1a5aTmJjoTJ061fnmm2+i/7Zu3dqIv5S3bGynxx57zHnllVecVatWOatWrXKeeuopp0WLFs7YsWMb8Zfyno1tdSAbVr+ysZ0efvhh56WXXnJWr17trFixwrn99tudcDjsvP322434S3nLxnbavn270759e+dnP/uZ8+mnnzrz5893Onfu7AwdOrQRfynv2dhWEdddd53Tt2/fBvxV/MfGdpoxY4aTmJjoPP74486aNWucBQsWOH369HFOPfXURvylvGVjO61cudL5y1/+4qxatcpZtGiRc9VVVzmtWrVy1q5d2/A/lIEIdao9+uijTocOHZxmzZo5p556qvPBBx/U+vmECRMcSQf9mzFjxmG3u27dOufCCy90UlNTnTZt2jh33HGHU1FRUesxdW33mGOOafR233nnHad3795Os2bNnGOPPfaItZrCxrZqyHb9zrZ2Ouuss+rc7uDBg2P5s/iObe00ZcoU5/jjj3fS0tKcjIwM58QTT3Qef/xxp7KyMqa/ix/Z1lYHsiHUcRz72umBBx5wjjvuOCclJcVp1aqVc/bZZzv//ve/Y/qb+JFt7eQ4jvP55587BQUFTmpqqtO+fXtn1KhRzs6dO+v9N/ErG9tq69atTmpqqvPkk0/W++/gdza205QpU5wePXo4qampTk5OjjNw4EDnq6++qvffxI9sa6fPPvvM6d27t5OamupkZGQ4l156qfOf//wnpr+JDUKOY2D/MQAAAAAAgIAL0EAzAAAAAAAAexDqAAAAAAAAGIhQBwAAAAAAwECEOgAAAAAAAAYi1AEAAAAAADAQoQ4AAAAAAICBCHUAAAAAAAAMRKgDAAAAAABgIEIdAAAAAAAAAxHqAAAAAAAAGIhQBwAAAAAAwED/H1+oHaueTKsCAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = openclsim.plot.get_step_chart([berth, dump, vessel01])" ] @@ -3954,30 +493,7 @@ "execution_count": null, "id": "7d901a65", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Message': ['Sailing from node offshore to node berth start',\n", - " 'Sailing from node offshore to node berth stop',\n", - " 'Sailing from node berth to node offshore start',\n", - " 'Sailing from node berth to node offshore stop'],\n", - " 'Timestamp': [Timestamp('1970-01-01 01:00:00'),\n", - " Timestamp('1970-01-01 10:18:15.594056'),\n", - " Timestamp('1970-01-01 10:18:15.594056'),\n", - " Timestamp('1970-01-01 19:36:31.188113')],\n", - " 'Value': [0, 0, 0, 0],\n", - " 'Geometry': [,\n", - " ,\n", - " ,\n", - " ]}" - ] - }, - "execution_count": 211, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "vessel02.log" ] @@ -3987,86 +503,7 @@ "execution_count": null, "id": "6a4095a3", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
MessageTimestampValueGeometry
0Sailing from node offshore to node berth start1970-01-01 01:00:00.0000000POINT (3.637610458072877 52.10701582514347)
1Sailing from node offshore to node berth stop1970-01-01 10:18:15.5940560POINT (4.062705498083785 51.95909715255291)
2Sailing from node berth to node offshore start1970-01-01 10:18:15.5940560POINT (4.062705498083785 51.95909715255291)
3Sailing from node berth to node offshore stop1970-01-01 19:36:31.1881130POINT (3.637610458072877 52.10701582514347)
\n", - "
" - ], - "text/plain": [ - " Message Timestamp \\\n", - "0 Sailing from node offshore to node berth start 1970-01-01 01:00:00.000000 \n", - "1 Sailing from node offshore to node berth stop 1970-01-01 10:18:15.594056 \n", - "2 Sailing from node berth to node offshore start 1970-01-01 10:18:15.594056 \n", - "3 Sailing from node berth to node offshore stop 1970-01-01 19:36:31.188113 \n", - "\n", - " Value Geometry \n", - "0 0 POINT (3.637610458072877 52.10701582514347) \n", - "1 0 POINT (4.062705498083785 51.95909715255291) \n", - "2 0 POINT (4.062705498083785 51.95909715255291) \n", - "3 0 POINT (3.637610458072877 52.10701582514347) " - ] - }, - "execution_count": 212, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# note the slightly different log handling than for the openclsim elemnents\n", "df = pd.DataFrame.from_dict(vessel02.log)\n", diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index e075f12a..f6891262 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -9,7 +9,8 @@ from .processor import LoadingFunction, Processor, UnloadingFunction from .resource import HasResource from .simpy_object import SimpyObject -from .priority import Priority, Location +from .priority import Priority +from .priority import Location __all__ = [ "basic", @@ -29,5 +30,4 @@ "HasResource", "SimpyObject", "Priority", - "Berth" ] diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py index ffa5c761..56860d64 100644 --- a/src/openclsim/core/priority.py +++ b/src/openclsim/core/priority.py @@ -1,7 +1,5 @@ -import simpy - class Priority: - def __init__(self): + def __init__(self, priority, type): self._priority = {} def add_priority(self, type, priority): @@ -10,14 +8,6 @@ def add_priority(self, type, priority): def get_priority(self, type): return self._priority[type] - -class Berth: - def __init__(self, env): - self.env = env - self.soil = simpy.Resource(env, capacity=1) # limited number of soil containers - self.cargo = simpy.Resource(env, capacity=1) # limited number of cargo containers - self.priority = Priority() - def vessel(self, type): if type == "dredging_vessel": priority = 1 # dredging vessel has priority to claim soil From 4ab815e20ef5da35b231aaa429b555d970ae83cf Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Mon, 17 Apr 2023 10:11:08 +0200 Subject: [PATCH 048/100] update location.py --- ...Accessibility_Dredging_with_Priority.ipynb | 238 ++++++++++++++---- src/openclsim/core/__init__.py | 1 + src/openclsim/core/priority.py | 8 + 3 files changed, 195 insertions(+), 52 deletions(-) diff --git a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb index 40428a56..534fbab9 100644 --- a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb +++ b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb @@ -15,24 +15,10 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "id": "bd1db812", "metadata": {}, - "outputs": [ - { - "ename": "ImportError", - "evalue": "cannot import name 'Location' from 'openclsim.core.priority' (C:\\Users\\asepehri\\github\\OpenCLSim\\src\\openclsim\\core\\priority.py)", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[11], line 8\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mdatetime\u001b[39;00m\u001b[39m,\u001b[39m \u001b[39mtime\u001b[39;00m\n\u001b[0;32m 7\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39msimpy\u001b[39;00m\n\u001b[1;32m----> 8\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\n\u001b[0;32m 9\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopentnsim\u001b[39;00m\n\u001b[0;32m 11\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mpandas\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mpd\u001b[39;00m\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\__init__.py:3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Top-level package for OpenCLSim.\"\"\"\u001b[39;00m\n\u001b[1;32m----> 3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcore\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mcore\u001b[39;00m\n\u001b[0;32m 4\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmodel\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mmodel\u001b[39;00m\n\u001b[0;32m 5\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenclsim\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplot\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mplot\u001b[39;00m\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\__init__.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39msimpy_object\u001b[39;00m \u001b[39mimport\u001b[39;00m SimpyObject\n\u001b[0;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mpriority\u001b[39;00m \u001b[39mimport\u001b[39;00m Priority\n\u001b[1;32m---> 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mpriority\u001b[39;00m \u001b[39mimport\u001b[39;00m Location\n\u001b[0;32m 15\u001b[0m __all__ \u001b[39m=\u001b[39m [\n\u001b[0;32m 16\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mbasic\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 17\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mHasContainer\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mPriority\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 33\u001b[0m ]\n", - "\u001b[1;31mImportError\u001b[0m: cannot import name 'Location' from 'openclsim.core.priority' (C:\\Users\\asepehri\\github\\OpenCLSim\\src\\openclsim\\core\\priority.py)" - ] - } - ], + "outputs": [], "source": [ "import networkx as nx \n", "import shapely.geometry\n", @@ -52,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "10df29e5", "metadata": {}, "outputs": [], @@ -64,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "396aa906", "metadata": {}, "outputs": [ @@ -170,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "f4953daf", "metadata": {}, "outputs": [], @@ -181,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "6408a82f", "metadata": {}, "outputs": [], @@ -218,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "197a7c04", "metadata": {}, "outputs": [], @@ -248,22 +234,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 21, "id": "eb96460b", "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'my_env' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[5], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# prepare input data for vessel_01\u001b[39;00m\n\u001b[0;32m 2\u001b[0m data_vessel01 \u001b[39m=\u001b[39m {\n\u001b[1;32m----> 3\u001b[0m \u001b[39m\"\u001b[39m\u001b[39menv\u001b[39m\u001b[39m\"\u001b[39m: my_env,\n\u001b[0;32m 4\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mname\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39mvessel01\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 5\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mgeometry\u001b[39m\u001b[39m\"\u001b[39m: location_berth, \n\u001b[0;32m 6\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mloading_rate\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m1\u001b[39m,\n\u001b[0;32m 7\u001b[0m \u001b[39m\"\u001b[39m\u001b[39munloading_rate\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m5\u001b[39m,\n\u001b[0;32m 8\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcapacity\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m10\u001b[39m,\n\u001b[0;32m 9\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mtype\u001b[39m\u001b[39m\"\u001b[39m:\u001b[39m\"\u001b[39m\u001b[39mdredging_vessel\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 10\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mpriority\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m1\u001b[39m,\n\u001b[0;32m 11\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcontainer\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39msoil\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 12\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mcompute_v\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39mlambda\u001b[39;00m x: \u001b[39m10\u001b[39m \u001b[39m+\u001b[39m \u001b[39m2\u001b[39m \u001b[39m*\u001b[39m x,\n\u001b[0;32m 13\u001b[0m }\n\u001b[0;32m 14\u001b[0m \u001b[39m# instantiate vessel_01 \u001b[39;00m\n\u001b[0;32m 15\u001b[0m vessel01 \u001b[39m=\u001b[39m Vessel_obj_01(\u001b[39m*\u001b[39m\u001b[39m*\u001b[39mdata_vessel01)\n", - "\u001b[1;31mNameError\u001b[0m: name 'my_env' is not defined" - ] - } - ], + "outputs": [], "source": [ "# prepare input data for vessel_01\n", "data_vessel01 = {\n", @@ -275,7 +249,6 @@ " \"capacity\": 10,\n", " \"type\":\"dredging_vessel\",\n", " \"priority\": 1,\n", - " \"container\": \"soil\",\n", " \"compute_v\": lambda x: 10 + 2 * x,\n", "}\n", "# instantiate vessel_01 \n", @@ -285,7 +258,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "2329f3f4", "metadata": {}, "outputs": [], @@ -296,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "6ac4b3d9", "metadata": {}, "outputs": [], @@ -323,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "da632d50", "metadata": {}, "outputs": [], @@ -333,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "69f85ca3", "metadata": {}, "outputs": [ @@ -390,32 +363,193 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "ec2fc285", "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'activity' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[103], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m display(openclsim\u001b[39m.\u001b[39mplot\u001b[39m.\u001b[39mget_log_dataframe(activity))\n", - "\u001b[1;31mNameError\u001b[0m: name 'activity' is not defined" - ] + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatetyperef
0387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 00:00:00.000000STARTNaNNaN
1387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 00:00:00.000000STARTsubprocesse2bf26b5-b2fb-4ece-a3fe-c4b42352ef16
2387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 00:00:00.000000STOPsubprocesse2bf26b5-b2fb-4ece-a3fe-c4b42352ef16
3387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 00:00:00.000000STARTsubprocessaf244b51-2be1-4de1-a572-299a13088fc6
4387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 00:00:10.000000STOPsubprocessaf244b51-2be1-4de1-a572-299a13088fc6
..................
77387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 08:49:59.864804STARTsubprocess03df71a3-a66d-4e81-9fa6-a7f2229734ef
78387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 09:16:39.958986STOPsubprocess03df71a3-a66d-4e81-9fa6-a7f2229734ef
79387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 09:16:39.958986STARTsubprocess3dd59b97-352b-4e81-bb79-fdb9bf26d99d
80387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 09:16:41.958986STOPsubprocess3dd59b97-352b-4e81-bb79-fdb9bf26d99d
81387b117a-3678-4c0f-9a4b-da716bbd62c91970-01-01 09:16:41.958986STOPNaNNaN
\n", + "

82 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\n", + "0 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", + "1 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", + "2 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", + "3 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", + "4 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:10.000000 \n", + ".. ... ... \n", + "77 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 08:49:59.864804 \n", + "78 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:39.958986 \n", + "79 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:39.958986 \n", + "80 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:41.958986 \n", + "81 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:41.958986 \n", + "\n", + " ActivityState type ref \n", + "0 START NaN NaN \n", + "1 START subprocess e2bf26b5-b2fb-4ece-a3fe-c4b42352ef16 \n", + "2 STOP subprocess e2bf26b5-b2fb-4ece-a3fe-c4b42352ef16 \n", + "3 START subprocess af244b51-2be1-4de1-a572-299a13088fc6 \n", + "4 STOP subprocess af244b51-2be1-4de1-a572-299a13088fc6 \n", + ".. ... ... ... \n", + "77 START subprocess 03df71a3-a66d-4e81-9fa6-a7f2229734ef \n", + "78 STOP subprocess 03df71a3-a66d-4e81-9fa6-a7f2229734ef \n", + "79 START subprocess 3dd59b97-352b-4e81-bb79-fdb9bf26d99d \n", + "80 STOP subprocess 3dd59b97-352b-4e81-bb79-fdb9bf26d99d \n", + "81 STOP NaN NaN \n", + "\n", + "[82 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "display(openclsim.plot.get_log_dataframe(activity))" + "display(openclsim.plot.get_log_dataframe(while_activity))" ] }, { "cell_type": "code", "execution_count": null, - "id": "a2164d1a", + "id": "04a3941e", "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "a2164d1a", + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (1783551121.py, line 11)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m Cell \u001b[1;32mIn[27], line 11\u001b[1;36m\u001b[0m\n\u001b[1;33m \"route\": path, # required by Routeable\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], "source": [ "# define a path into and out of the habour\n", "path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index f6891262..52168fb3 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -30,4 +30,5 @@ "HasResource", "SimpyObject", "Priority", + "Location" ] diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py index 56860d64..7e607f05 100644 --- a/src/openclsim/core/priority.py +++ b/src/openclsim/core/priority.py @@ -22,3 +22,11 @@ def vessel(self, type): yield request print(f"{type} claimed the {container.type} container.") yield self.env.timeout(5 if type == "dredging_vessel" else 3) # process container + + +class Location: + def __init__(self, water_depth, channel_width, soil_quantity, cargo_quantity): + self.water_depth = water_depth + self.channel_width = channel_width + self.soil_quantity = soil_quantity + self.cargo_quantity = cargo_quantity From feab2356aa09916e0a611c53d5c945312dcc0bf4 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 18 Apr 2023 10:27:42 +0200 Subject: [PATCH 049/100] update notebook 35 --- ...Accessibility_Dredging_with_Priority.ipynb | 3504 ++++++++++++++++- 1 file changed, 3427 insertions(+), 77 deletions(-) diff --git a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb index 534fbab9..c3c35c44 100644 --- a/notebooks/35_Accessibility_Dredging_with_Priority.ipynb +++ b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "id": "bd1db812", "metadata": {}, "outputs": [], @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 4, "id": "10df29e5", "metadata": {}, "outputs": [], @@ -50,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 5, "id": "396aa906", "metadata": {}, "outputs": [ @@ -156,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 6, "id": "f4953daf", "metadata": {}, "outputs": [], @@ -167,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 7, "id": "6408a82f", "metadata": {}, "outputs": [], @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 8, "id": "197a7c04", "metadata": {}, "outputs": [], @@ -234,7 +234,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 9, "id": "eb96460b", "metadata": {}, "outputs": [], @@ -258,7 +258,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 10, "id": "2329f3f4", "metadata": {}, "outputs": [], @@ -269,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 11, "id": "6ac4b3d9", "metadata": {}, "outputs": [], @@ -296,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 12, "id": "da632d50", "metadata": {}, "outputs": [], @@ -306,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 13, "id": "69f85ca3", "metadata": {}, "outputs": [ @@ -363,7 +363,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 14, "id": "ec2fc285", "metadata": {}, "outputs": [ @@ -398,7 +398,7 @@ " \n", " \n", " 0\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 00:00:00.000000\n", " START\n", " NaN\n", @@ -406,35 +406,35 @@ " \n", " \n", " 1\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 00:00:00.000000\n", " START\n", " subprocess\n", - " e2bf26b5-b2fb-4ece-a3fe-c4b42352ef16\n", + " f2630f78-2af9-4a99-b7e4-7f18c7220a17\n", " \n", " \n", " 2\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 00:00:00.000000\n", " STOP\n", " subprocess\n", - " e2bf26b5-b2fb-4ece-a3fe-c4b42352ef16\n", + " f2630f78-2af9-4a99-b7e4-7f18c7220a17\n", " \n", " \n", " 3\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 00:00:00.000000\n", " START\n", " subprocess\n", - " af244b51-2be1-4de1-a572-299a13088fc6\n", + " d26d3082-9619-4efe-98a1-c1edb8e54693\n", " \n", " \n", " 4\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 00:00:10.000000\n", " STOP\n", " subprocess\n", - " af244b51-2be1-4de1-a572-299a13088fc6\n", + " d26d3082-9619-4efe-98a1-c1edb8e54693\n", " \n", " \n", " ...\n", @@ -446,39 +446,39 @@ " \n", " \n", " 77\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 08:49:59.864804\n", " START\n", " subprocess\n", - " 03df71a3-a66d-4e81-9fa6-a7f2229734ef\n", + " a91016d0-eaf1-4d35-af13-afedbe5d0db7\n", " \n", " \n", " 78\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 09:16:39.958986\n", " STOP\n", " subprocess\n", - " 03df71a3-a66d-4e81-9fa6-a7f2229734ef\n", + " a91016d0-eaf1-4d35-af13-afedbe5d0db7\n", " \n", " \n", " 79\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 09:16:39.958986\n", " START\n", " subprocess\n", - " 3dd59b97-352b-4e81-bb79-fdb9bf26d99d\n", + " 81597438-b7ac-4e45-be61-470e31a4eea7\n", " \n", " \n", " 80\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 09:16:41.958986\n", " STOP\n", " subprocess\n", - " 3dd59b97-352b-4e81-bb79-fdb9bf26d99d\n", + " 81597438-b7ac-4e45-be61-470e31a4eea7\n", " \n", " \n", " 81\n", - " 387b117a-3678-4c0f-9a4b-da716bbd62c9\n", + " 018740f0-251b-4089-833d-d7e7fcf420a1\n", " 1970-01-01 09:16:41.958986\n", " STOP\n", " NaN\n", @@ -491,29 +491,29 @@ ], "text/plain": [ " Activity Timestamp \\\n", - "0 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", - "1 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", - "2 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", - "3 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:00.000000 \n", - "4 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 00:00:10.000000 \n", + "0 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 00:00:00.000000 \n", + "1 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 00:00:00.000000 \n", + "2 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 00:00:00.000000 \n", + "3 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 00:00:00.000000 \n", + "4 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 00:00:10.000000 \n", ".. ... ... \n", - "77 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 08:49:59.864804 \n", - "78 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:39.958986 \n", - "79 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:39.958986 \n", - "80 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:41.958986 \n", - "81 387b117a-3678-4c0f-9a4b-da716bbd62c9 1970-01-01 09:16:41.958986 \n", + "77 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 08:49:59.864804 \n", + "78 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 09:16:39.958986 \n", + "79 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 09:16:39.958986 \n", + "80 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 09:16:41.958986 \n", + "81 018740f0-251b-4089-833d-d7e7fcf420a1 1970-01-01 09:16:41.958986 \n", "\n", " ActivityState type ref \n", "0 START NaN NaN \n", - "1 START subprocess e2bf26b5-b2fb-4ece-a3fe-c4b42352ef16 \n", - "2 STOP subprocess e2bf26b5-b2fb-4ece-a3fe-c4b42352ef16 \n", - "3 START subprocess af244b51-2be1-4de1-a572-299a13088fc6 \n", - "4 STOP subprocess af244b51-2be1-4de1-a572-299a13088fc6 \n", + "1 START subprocess f2630f78-2af9-4a99-b7e4-7f18c7220a17 \n", + "2 STOP subprocess f2630f78-2af9-4a99-b7e4-7f18c7220a17 \n", + "3 START subprocess d26d3082-9619-4efe-98a1-c1edb8e54693 \n", + "4 STOP subprocess d26d3082-9619-4efe-98a1-c1edb8e54693 \n", ".. ... ... ... \n", - "77 START subprocess 03df71a3-a66d-4e81-9fa6-a7f2229734ef \n", - "78 STOP subprocess 03df71a3-a66d-4e81-9fa6-a7f2229734ef \n", - "79 START subprocess 3dd59b97-352b-4e81-bb79-fdb9bf26d99d \n", - "80 STOP subprocess 3dd59b97-352b-4e81-bb79-fdb9bf26d99d \n", + "77 START subprocess a91016d0-eaf1-4d35-af13-afedbe5d0db7 \n", + "78 STOP subprocess a91016d0-eaf1-4d35-af13-afedbe5d0db7 \n", + "79 START subprocess 81597438-b7ac-4e45-be61-470e31a4eea7 \n", + "80 STOP subprocess 81597438-b7ac-4e45-be61-470e31a4eea7 \n", "81 STOP NaN NaN \n", "\n", "[82 rows x 5 columns]" @@ -529,25 +529,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "04a3941e", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# make your preferred Vessel class out of available mix-ins. \n", + "Vessel_obj_02 = type('Vessel', \n", + " (opentnsim.core.Identifiable, \n", + " opentnsim.core.Movable,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata), {})" + ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 16, "id": "a2164d1a", "metadata": {}, "outputs": [ { - "ename": "SyntaxError", - "evalue": "invalid syntax (1783551121.py, line 11)", - "output_type": "error", - "traceback": [ - "\u001b[1;36m Cell \u001b[1;32mIn[27], line 11\u001b[1;36m\u001b[0m\n\u001b[1;33m \"route\": path, # required by Routeable\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" - ] + "data": { + "text/plain": [ + "['offshore', 'berth', 'offshore']" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -558,24 +566,34 @@ "display(path)\n", " \n", "# create a dict with all important settings\n", - "data_vessel02 = {\"env\": my_env, # needed for simpy simulation\n", - " \"name\": 'seagoing vessel', # required by Identifiable\n", - " \"geometry\": location_offshore # required by Locatable\n", - " \"route\": path, # required by Routeable\n", - " \"priority\": 2, # the seagoing vessel has the second priority to serve the berth location\n", - " \"v\": 1,} # required by Movable\n", + "data_vessel02 = {\"env\": my_env,\n", + " \"name\": 'seagoing vessel',\n", + " \"geometry\": location_offshore,\n", + " \"route\": path,\n", + " \"v\": 1}\n", "\n", "# instantiate vessel_02 \n", - "vessel02 = TransportProcessingResource(**data_vessel02)\n", + "vessel02 = Vessel_obj_02(**data_vessel02)\n", "assert not vessel02.metadata" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "437ea3dd", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# specify the process that needs to be executed\n", "my_env.process(vessel02.move())" @@ -583,7 +601,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "01ed80c7", "metadata": {}, "outputs": [], @@ -594,50 +612,3382 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "8132ea8d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStategeometrycontainer level
0single_run sailing empty1970-01-01 00:00:00.000000STARTPOINT (4.062705498083785 51.95909715255291)0.0
1single_run sailing empty1970-01-01 00:00:00.000000STOPPOINT (4.062705498083785 51.95909715255291)0.0
2single_run loading1970-01-01 00:00:00.000000STARTPOINT (4.062705498083785 51.95909715255291)0.0
3single_run loading1970-01-01 00:00:10.000000STOPPOINT (4.062705498083785 51.95909715255291)10.0
4single_run sailing filled1970-01-01 00:00:10.000000STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
75single_run loading1970-01-01 08:49:59.864804STOPPOINT (4.062705498083785 51.95909715255291)10.0
76single_run sailing filled1970-01-01 08:49:59.864804STARTPOINT (4.062705498083785 51.95909715255291)10.0
77single_run sailing filled1970-01-01 09:16:39.958986STOPPOINT (4.1795229742823 52.11590591837503)10.0
78single_run unloading1970-01-01 09:16:39.958986STARTPOINT (4.1795229742823 52.11590591837503)10.0
79single_run unloading1970-01-01 09:16:41.958986STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", + "

80 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 single_run sailing empty 1970-01-01 00:00:00.000000 START \n", + "1 single_run sailing empty 1970-01-01 00:00:00.000000 STOP \n", + "2 single_run loading 1970-01-01 00:00:00.000000 START \n", + "3 single_run loading 1970-01-01 00:00:10.000000 STOP \n", + "4 single_run sailing filled 1970-01-01 00:00:10.000000 START \n", + ".. ... ... ... \n", + "75 single_run loading 1970-01-01 08:49:59.864804 STOP \n", + "76 single_run sailing filled 1970-01-01 08:49:59.864804 START \n", + "77 single_run sailing filled 1970-01-01 09:16:39.958986 STOP \n", + "78 single_run unloading 1970-01-01 09:16:39.958986 START \n", + "79 single_run unloading 1970-01-01 09:16:41.958986 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + ".. ... ... \n", + "75 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "76 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "77 POINT (4.1795229742823 52.11590591837503) 10.0 \n", + "78 POINT (4.1795229742823 52.11590591837503) 10.0 \n", + "79 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "\n", + "[80 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "display(openclsim.plot.get_log_dataframe(vessel01, [*single_run, while_activity]))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "141ea4f9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(167,107,32)", + "width": 10 + }, + "mode": "lines", + "name": "single_run", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986" + ], + "y": [ + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null, + "single_run", + "single_run", + "single_run", + "single_run", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(195,135,60)", + "width": 10 + }, + "mode": "lines", + "name": "single_run loading", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(223,163,88)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing empty", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(251,191,116)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing filled", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(23,219,144)", + "width": 10 + }, + "mode": "lines", + "name": "single_run unloading", + "type": "scatter", + "x": [ + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(51,247,172)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing empty", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null, + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + "single_run sailing empty", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(79,19,200)", + "width": 10 + }, + "mode": "lines", + "name": "single_run loading", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:58:52.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:44.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:36.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:28.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:21.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:13.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:05.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:50:57.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:49.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null, + "single_run loading", + "single_run loading", + "single_run loading", + "single_run loading", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(107,47,228)", + "width": 10 + }, + "mode": "lines", + "name": "single_run sailing filled", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:59:02.207200", + "1970-01-01T00:59:02.207200", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:57:54.414401", + "1970-01-01T01:57:54.414401", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:56:46.621601", + "1970-01-01T02:56:46.621601", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:55:38.828802", + "1970-01-01T03:55:38.828802", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:54:31.036002", + "1970-01-01T04:54:31.036002", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:53:23.243203", + "1970-01-01T05:53:23.243203", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:52:15.450403", + "1970-01-01T06:52:15.450403", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:51:07.657604", + "1970-01-01T07:51:07.657604", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:49:59.864804", + "1970-01-01T08:49:59.864804", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null, + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + "single_run sailing filled", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(135,75,0)", + "width": 10 + }, + "mode": "lines", + "name": "single_run unloading", + "type": "scatter", + "x": [ + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:50.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T00:26:52.094182", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:42.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T01:25:44.301383", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:34.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T02:24:36.508583", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:26.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T03:23:28.715783", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:18.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T04:22:20.922984", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:11.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T05:21:13.130184", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:03.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T06:20:05.337385", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:55.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T07:18:57.544585", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:47.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T08:17:49.751786", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:39.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986", + "1970-01-01T09:16:41.958986" + ], + "y": [ + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "vessel01", + "vessel01", + "vessel01", + "vessel01", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null, + "single_run unloading", + "single_run unloading", + "single_run unloading", + "single_run unloading", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T09:16:41.958986" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "openclsim.plot.get_gantt_chart([while_activity, vessel01, *single_run])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "5205fc7f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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G6dnn31WDzzwgJ566in16dNHZWVl+uCDDyRJ7733nn7+85/rT3/6k0444QRt2LBBb775ZvT5J06cqD//+c+aOnWqevTooTfeeEOXXXaZOnTooJNPPnmveufPn6+TTjpJ6enp0e8NGjRId999t7777jsddNBBTf9HSwJCHQAAAJ+JHCMT6gAA9mfbzm0a8MQAI8+94NIFyk7LPuDvHXTQQTrzzDP1xBNPREOdZ555Ru3bt9epp54qSRo/frxuvvlmDR06VJLUvXt3/epXv9JNN92kcePGadWqVSooKFBpaanS0tLUpUsX9e/fX5K0atUqtWrVSoMHD1abNm3UtWtXHXXUUZKkqqoq3XXXXXrttddUUlISfex58+bpj3/8Y8xQp6ysTN26dWvwvfz8/OjP/BbqcPsVAACwjPtJR+TKJxMlAwBcMGTIED377LOqqqqStOsWp4svvljh8K5I4oMPPtCECRPUunXr6J/hw4dr7dq1qqys1IUXXqht27ape/fuGj58uJ577rnorVlnnHGGunbtqu7du+t///d/NXPmTFVWVkqSPvvsM1VWVuqMM85o8NiPP/64Pv/8czP/GAlGpw4AAIDPRJrZiXQAAPuTlZqlBZcuMPbcjXX22WfL8zy9/PLLOu644/Tmm2/qgQceiP58y5YtGj9+vM4777y9/m5kBaply5bptdde06uvvqprr71W9957r+bOnas2bdro/fff15w5c/Svf/1LY8eO1R133KF3331XW7ZskSS9/PLL6tSpU4PH3ddcOAUFBSovL2/wvcjXpidFjoVQBwAAWMrtOXUkqZblrwAA+xEKhRp1C5RpmZmZOu+88zRz5kx99tln6tWrl44++ujoz48++mgtW7ZMhx566D4fIysrS2effbbOPvtsjRgxQr1799bSpUt19NFHKzU1VaWlpSotLdW4ceOUl5en119/XWeccYYyMjK0atWqmLdaxVJSUqJbb71V1dXVSktLkyS9+uqr6tWrl+9uvZIIdQAAgG0CcEuSw3NAAwACasiQIRo8eLA++ugjXXbZZQ1+NnbsWA0ePFhdunTRBRdcoHA4rA8++EAffvih7rzzTs2YMUM1NTUaMGCAsrOz9ec//1lZWVnq2rWr/v73v2vFihU66aSTdNBBB+mVV15RbW2tevXqpTZt2uiGG27Q9ddfr9raWn3/+9/Xpk2b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m3rvvfc0depUTZo0SU8++aTpkozz01jV1NTo0ksv1fjx49WzZ0+jtfiNn8ZJknr16qWf/OQnOuaYY3TCCSfo0Ucf1QknnODMBORN5bdxqq2tVSgU0syZM9W/f3/96Ec/0v3336/HHnvM2ot5ieK3sarvscceU15ens4991zTpRjnt3H6+OOPdd1112ns2LFatGiRZs2apS+++EI//elPTZdmlN/G6fbbb9eZZ56p448/XmlpaTrnnHM0dOhQSbs6kYLC/ktjzdS+fXulpKSovLy8wffLy8tVUFDQ6Md5+OGHox+aaWlpkqSCgoK9ZhSPPE88j72nxjxuQUFBzNeUk5OjrKysJj+3Sa6OlWtcH6ennnpKV199tZ5++um9bnG0ievj1K1bN0lS3759VV5erjvuuEOXXHJJk5/bJBfHavPmzXrvvfe0ePFijRw5UtKuk1LP85Samqp//etfOu2005r8/Ca4OE770r9/f82bN6/Jz2uSq+NUWFioTp06KTc3N/o7hx12mDzP01dffaUePXo0+flNcXWsIjzP06OPPqr//d//VXp6epOf0zRXx2nixIkaOHCgbrzxRknSEUccoVatWunEE0/UnXfeqcLCwiY/vwmujlNWVpYeffRR/fGPf1R5ebkKCws1bdo0tWnTRh06dGjyc9smOPHVPqSnp+uYY47R7Nmzo9+rra3V7NmzVVJS0ujH6dSpkw499FAdeuih0XtiS0pKtHTp0gYzir/66qvKycnR4Ycf3uSaG/O4JSUlDV5T5HfieU1+4+pYucblcXryySd15ZVX6sknn9RZZ53V5OfzA5fHaU+1tbWqqqpq8vOa5uJY5eTkaOnSpVqyZEn0z09/+lP16tVLS5Ys0YABA5r83Ka4OE77smTJEutOaCJcHaeBAwdqzZo12rJlS/R3li9frnA4rM6dOzf5uU1ydawi5s6dq88++0zDhg1r8vP5gavjVFlZuVenR0pKiqRdgZxtXB2niLS0NHXu3FkpKSl66qmnNHjw4EB16rD6led5Tz31lJeRkeHNmDHD+/jjj71rrrnGy8vLazDT9tq1a73Fixd7//d//+dJ8t544w1v8eLF+11lYOfOnd73vvc97wc/+IG3ZMkSb9asWV6HDh28MWPGNPi9xYsXe4sXL/aOOeYY79JLL/UWL17sffTRR8163BUrVnjZ2dnejTfe6H3yySfelClTvJSUFG/WrFnN+Jcyz8Wxasrj+p2L4zRz5kwvNTXVmzJlird27dron40bNzbjX8osF8fpD3/4g/fiiy96y5cv95YvX+49/PDDXps2bbxbb721Gf9S5rk4VntyYfUrF8fpgQce8J5//nnv008/9ZYuXepdd911Xjgc9l577bVm/EuZ5eI4bd682evcubN3wQUXeB999JE3d+5cr0ePHt7VV1/djH8p81wcq4jLLrvMGzBgQBP+VfzHxXGaPn26l5qa6j344IPe559/7s2bN8879thjvf79+zfjX8osF8dp2bJl3p/+9Cdv+fLl3oIFC7yLLrrIa9u2rbdy5cqm/0NZiFCnzu9//3uvS5cuXnp6ute/f3/vnXfeafDzcePGeZL2+jN9+vT9Pu4XX3zhnXnmmV5WVpbXvn177xe/+IVXXV3d4HdiPW7Xrl2b/bj//ve/vSOPPNJLT0/3unfvfsBabeHiWDXlcf3OtXE6+eSTYz7u0KFD4/ln8R3Xxmny5Mlenz59vOzsbC8nJ8c76qijvAcffNCrqamJ69/Fj1wbqz25EOp4nnvjdPfdd3uHHHKIl5mZ6bVt29Y75ZRTvNdffz2ufxM/cm2cPM/zPvnkE6+0tNTLysryOnfu7I0ePdqrrKxs9L+JX7k4Vhs3bvSysrK8adOmNfrfwe9cHKfJkyd7hx9+uJeVleUVFhZ6Q4YM8b766qtG/5v4kWvj9PHHH3tHHnmkl5WV5eXk5HjnnHOO99///jeufxMXhDzPwv4xAAAAAACAgAvQjWYAAAAAAADuINQBAAAAAACwEKEOAAAAAACAhQh1AAAAAAAALESoAwAAAAAAYCFCHQAAAAAAAAsR6gAAAAAAAFiIUAcAAAAAAMBChDoAAAAAAAAWItQBAAAAAACwEKEOAAAAAACAhf5/UmiTmuUcVRcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = openclsim.plot.get_step_chart([berth, dump, vessel01])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "7d901a65", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'Message': ['Sailing from node offshore to node berth start',\n", + " 'Sailing from node offshore to node berth stop',\n", + " 'Sailing from node berth to node offshore start',\n", + " 'Sailing from node berth to node offshore stop'],\n", + " 'Timestamp': [Timestamp('1970-01-01 10:16:41.958986'),\n", + " Timestamp('1970-01-01 19:34:57.553043'),\n", + " Timestamp('1970-01-01 19:34:57.553043'),\n", + " Timestamp('1970-01-02 04:53:13.147099')],\n", + " 'Value': [0, 0, 0, 0],\n", + " 'Geometry': [,\n", + " ,\n", + " ,\n", + " ]}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "vessel02.log" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "6a4095a3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MessageTimestampValueGeometry
0Sailing from node offshore to node berth start1970-01-01 10:16:41.9589860POINT (3.637610458072877 52.10701582514347)
1Sailing from node offshore to node berth stop1970-01-01 19:34:57.5530430POINT (4.062705498083785 51.95909715255291)
2Sailing from node berth to node offshore start1970-01-01 19:34:57.5530430POINT (4.062705498083785 51.95909715255291)
3Sailing from node berth to node offshore stop1970-01-02 04:53:13.1470990POINT (3.637610458072877 52.10701582514347)
\n", + "
" + ], + "text/plain": [ + " Message Timestamp \\\n", + "0 Sailing from node offshore to node berth start 1970-01-01 10:16:41.958986 \n", + "1 Sailing from node offshore to node berth stop 1970-01-01 19:34:57.553043 \n", + "2 Sailing from node berth to node offshore start 1970-01-01 19:34:57.553043 \n", + "3 Sailing from node berth to node offshore stop 1970-01-02 04:53:13.147099 \n", + "\n", + " Value Geometry \n", + "0 0 POINT (3.637610458072877 52.10701582514347) \n", + "1 0 POINT (4.062705498083785 51.95909715255291) \n", + "2 0 POINT (4.062705498083785 51.95909715255291) \n", + "3 0 POINT (3.637610458072877 52.10701582514347) " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# note the slightly different log handling than for the openclsim elemnents\n", "df = pd.DataFrame.from_dict(vessel02.log)\n", From 196fc81fc74202b7f2779578c98aa093befb634a Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 25 Apr 2023 11:58:21 +0200 Subject: [PATCH 050/100] Add Indicator Module --- src/openclsim/core/Indicators.py | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/openclsim/core/Indicators.py diff --git a/src/openclsim/core/Indicators.py b/src/openclsim/core/Indicators.py new file mode 100644 index 00000000..348000cc --- /dev/null +++ b/src/openclsim/core/Indicators.py @@ -0,0 +1,101 @@ +import simpy +import random + +# A Port class is defined to specify the port specifications (number of available berths, number of cranes, and water level) + + +class Port: + def __init__(self, env, num_berths, num_cranes, water_level): + self.env = env + self.num_berths = num_berths + self.num_cranes = num_cranes + self.berths = simpy.Resource(env, capacity=num_berths) + self.cranes = simpy.Resource(env, capacity=num_cranes) + self.queues = [] + self.wait_times = [] + self.num_ships = 0 + self.num_ships_served = 0 + self.water_level = water_level + self.accessibility = 0.5 # Starts at 100% accessibility + + def handle_ship(self, ship): + + # Check if water level is appropriate for navigating + if self.water_level < 10: + self.accessibility -= 0.1 # Reduce accessibility by 10% if water level is too low + self.dredge() # Select a dredging strategy + + # Record the time the ship arrives + arrival_time = self.env.now + + with self.berths.request() as berth: + # Wait for an available berth + yield berth + + # Record the time the ship begins unloading + unloading_start_time = self.env.now + + # Simulate the unloading process + unloading_time = random.randint(1, 5) # Replace with actual unloading time distribution + yield self.env.timeout(unloading_time) + + # Record the time the ship finishes unloading + unloading_finish_time = self.env.now + + # Record the wait time for the ship in the queue + wait_time = unloading_start_time - arrival_time + self.wait_times.append(wait_time) + + # Record the number of ships served + self.num_ships_served += 1 + + # Record the time the ship leaves the port + departure_time = self.env.now + + # Record the total time the ship spent in the port + total_time = departure_time - arrival_time + + # Record the ship's data + self.queues.append((arrival_time, unloading_start_time, unloading_finish_time, departure_time, total_time)) + + def generate_ship(self): + while True: + # Generate ships at random intervals + yield self.env.timeout(random.randint(1, 5)) # Replace with actual interarrival time distribution + + # Create a new ship process + self.num_ships += 1 + self.env.process(self.handle_ship(self.num_ships)) + + def run(self, sim_time): + self.env.process(self.generate_ship()) + self.env.run(until=sim_time) + + # Calculate key performance indicators + avg_wait_time = sum(self.wait_times) / len(self.wait_times) + avg_service_time = sum(data[4] for data in self.queues) / len(self.queues) + avg_throughput = self.num_ships_served / sim_time + + print("Average wait time: {:.2f}".format(avg_wait_time)) + print("Average service time: {:.2f}".format(avg_service_time)) + print("Average throughput: {:.2f}".format(avg_throughput)) + print("Accessibility: {:.2f}%".format(self.accessibility * 100)) + + def dredge(self): + # Select a dredging strategy based on current accessibility + if self.accessibility <= 0.5: + # Strategy 1: Rent a dredger to remove sediment and deepen the channel + dredger_cost = 5000 # Cost to rent a dredger for 1 day + dredger_speed = 50 # Cubic meters of sediment dredged per hour + dredging_speed = 10 # Cubic meters of sediment that accumulate per hour + time_needed = (1 - self.accessibility) * self.num_ships * dredging_speed / dredger_speed + sediment_dredged = time_needed * dredger_speed + self.accessibility = min(1, self.accessibility + dredging_speed / (dredger_speed * time_needed)) + print("Dredging strategy 1 selected. Accessibility: {:.2f}%. Amount of sediment dredged: {:.2f} cubic meters.".format( + self.accessibility * 100, sediment_dredged)) + else: + # Strategy 2: Deploy underwater curtains to reduce sediment accumulation + curtain_cost = 1000 # Cost to deploy curtains for 1 day + curtain_effectiveness = 0.2 # Percentage reduction in sediment accumulation + self.accessibility = min(1, self.accessibility + curtain_effectiveness) + print("Dredging strategy 2 selected. Accessibility: {:.2f}%.".format(self.accessibility * 100)) From 76a86f42222440cb7c49b6fd7161395ca7f04744 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 25 Apr 2023 11:58:41 +0200 Subject: [PATCH 051/100] update priority.py --- src/openclsim/core/priority.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py index 7e607f05..56860d64 100644 --- a/src/openclsim/core/priority.py +++ b/src/openclsim/core/priority.py @@ -22,11 +22,3 @@ def vessel(self, type): yield request print(f"{type} claimed the {container.type} container.") yield self.env.timeout(5 if type == "dredging_vessel" else 3) # process container - - -class Location: - def __init__(self, water_depth, channel_width, soil_quantity, cargo_quantity): - self.water_depth = water_depth - self.channel_width = channel_width - self.soil_quantity = soil_quantity - self.cargo_quantity = cargo_quantity From 94edc03c5d66372de86119aa0e87e72354a325b9 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 25 Apr 2023 11:59:01 +0200 Subject: [PATCH 052/100] update __init__.py --- src/openclsim/core/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 52168fb3..dc5ed385 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -10,7 +10,7 @@ from .resource import HasResource from .simpy_object import SimpyObject from .priority import Priority -from .priority import Location +from .Indicators import Port __all__ = [ "basic", @@ -30,5 +30,5 @@ "HasResource", "SimpyObject", "Priority", - "Location" + "Port" ] From e74a4453cb9a22aff74e4ed3ef34eab1a30b544a Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 26 Apr 2023 11:35:11 +0200 Subject: [PATCH 053/100] use shared registry, switch from directed to undirected graph, make transportresource loading and unloading capable so it can shift goods --- notebooks/34_Multiple_Seagoing_Vessels.ipynb | 595 ++++++++++--------- 1 file changed, 322 insertions(+), 273 deletions(-) diff --git a/notebooks/34_Multiple_Seagoing_Vessels.ipynb b/notebooks/34_Multiple_Seagoing_Vessels.ipynb index 1999604a..edd6efe2 100644 --- a/notebooks/34_Multiple_Seagoing_Vessels.ipynb +++ b/notebooks/34_Multiple_Seagoing_Vessels.ipynb @@ -56,9 +56,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkgUlEQVR4nO3de5yVdbX48c8C5JqpmHnBK1GmBug5QnhLNFI0ggq56eEiGgJpWWy0l79zxF+GGWzypMfQKRE084YVAyJFKpKXAoqbCh0lb4QpiCjOwHCZdf74PsOewRnYe/bz7O/zPHu9X6/98vXCmf2sGTZrf/d61nd9RVUxxhhTGi18B2CMMeXEkq4xxpSQJV1jjCkhS7rGGFNClnSNMaaEWvkOwPghkj0UGAX0B7oDbYAaQIKHBo+6P18JVAIzVTPveQjZmLyJZI8CugEHAq2BHcBWYKVq5m2vsVnLWHkRyfYEJuCSbS3QvoBvr8Z9OqoEpqlmloQfoTGFS9IiwpJumRDJdgQqgIuAthRXWqoFtgNPAGNUM5uLj9CYwiVxEWFJtwyIZPsDM3EvyDYhPnUN7oU7UjUzN8TnNWafkryIsKSbYiJZAaYC4yhsBVCoamA6MFE1Yy8oE6mkLyIs6aZUkHArgGFAhxJcsgp4ELdSsBeVCV1aFhHWMpZeWUqXcAmuMwz3j8KYUNVbRIwl2oRL8PxjgYrguqGypJtCwcevsZQu4dbpAIwTyX6txNc16ZeaRYSVF1ImuMHwKnCIxzDeB7pYV4MJQ7CIeJDoV7iNqQaGhlnjtZVu+lTg58VZX3vgbs8xmBQIFhEz8feabg/MCuIIRSx2pMV590iSBD2LFxHuHd3maANcLJLtoZpZ6jkWk2xxWkQMCuPJvJQXkrR7JElEsg8DlxCPTzC7gdmqmaG+AzHJFCwinsZ/0gVXZugdxiKipEk3ibtHkiJ4I1uPaxSPi+3A0fZGaZojrYuIkvwwItmOItnZuHetS3CJodB3r/bB910CPC2SnR1mnSUFRuHeyOKkFhjpOwiTPMEioj/xSLgALYEBQVxFifwHCu48vgr0wyXOYq/ZIniefsCr1p60R3/i8TGsvva4uIwp1ChSuoiILOmKZEUkm8W1ehxC+Dd32gTP+5BINhtFE3PCdPcdQBPiGpeJt9QuIiJJumnaPZIEQfeH746FprQTyR7pOwiTOHF9sy46rqhWuqnZPZIQ3XBdHnG0HRefMXlJ+yIi9KRrW1C9OBDXatdA584HsX79VcyY0ZdMpgevvHIFgwef2OBr7r23L9df37PoAO666yv86U9D+fOfL6NNm5b1/5cE8RmTr4IXEUOGnMjTTw+JKJwGil5EhJp007h7JCFaAzJgQBdeeulyXnrpckaN+gI33XQmhxziOsgmTDidFi2E448/iLVrR/PUU4Pp168zAN/4xmdZs+ZyJk7sQZcuB/PXvw5nxYoRTJ/eh+OO+yQ7dnyP3/xmAMOGfZ5Fi4bw/POXUlFxQYMA7r//ZY488hO0aiXs3t2gDVGI76rFxFOji4jGXHbZSbz22re44oquAKxZczkAqhkOP7w9r732LR5//Ju8/voYZs68iPXrr+Kcc45m0qQzWbFiBMuXj+DnP+9TSGxFLyLCXunGafdIOdkB6JVXduXOO5czadJzjB9/Kvfc8yJvvvkho0cvYMGC16ioWMUDD7zM3LnrWL16E9XVuwBYuPB1pkxZynnnHcuAAV1Yt24Lffo8ytixp9KhwwGICMOHz6emZjfduh1GTc1u+vQ5jo4dcy3Bzz33T7p2nckJJxzEccd9sn5sSnxLHyaeWpNn0r300pOYOnUps2a9RO/exyAitG3bcKPttGnLeOOND1i8+C2eeupNzjjjKACef34Dw4fPZ8SIUwqJrehFRGjbgG0LqldbAZ0x40UmTz4bgGy28R+9c+eDOe20T9Op0ydYs8btWfjoo53U1ioiUFm5juHDT+bJJwdTUbGSqqqd7NpVS1XVThYteovVqzcCsGTJ22zevB2ADh0O4KmnBtOmTUvWrNnMpk3b6l9Sg/iMydcO3Otmv3796zXcfPPZrFu3hZdffo927Vpx++3nN/iaqqqd1Na6/+7e7V7nAL16HUmvXkdy330vFRJb0YuI0HakpXX3SBIENx7WEa/daHVqgBNshobJl0i2L/AQcFBU15g06UyOOKI948b9sdBv/QAYopr5fXOvHUrStS2o/olktxDhi7QIW1QzPsdMmoRJ+yIirFXpKFK6eyRBVvoOoAlxjcvElGpmA/G9D7Ct2E9tYSXd1O4eSZBK3FCgOKnGxWVMoeL6Zl10XGEl3dTuHkmQmcSjnl5fC2CW7yBMIqV2EVH0P9K07x5JiqB2XUl8yjy7gTnlUlM3oZtJShcRYfxQTe4eKeWOqFtv/RKbNn2bIUMaPH+5bUGdhvuZ46AGF48xBUvzIiKMpLtn94jPHVE/+MFiVq/etHdsZbUFNRjs/gT+b0LUAPPLqE/aRCOVi4gwNkfs2T1StyPq3Xerue66nkyc+Aw9ehzB6NELuPfevqxdu5kHHniZww5rR+vWLRvsiPrHPz5g0KATqa1V1q3bwvjxf2Tjxm9zxx3L9+yIuvDC4+nW7TBWrty4Z0dUXYN+E8pxC+oY3Pxinz93dRCHMc2mmlkikn0CNzvb5+s51EVEGCvdPbtHZsx4kauvPo0f/vAs7rprRaNfXLcj6oILjuNzn3Ptm3vviPrc5w4paEcUwC23nEPXrp/iuut6cvbZner+uOy2oAbHno/C302IamCkauZ9T9c36TIG/zfUQl1EFL05ohS7R4pQ9O6RpAoGyJd62lsVcJdqJlPCa5qUCyYXPoifttRqYKhqZm5YTxjGSncV8f0I3xYXXzmaiHuhVpXoelXB9SaW6HqmTKhmKoHplO61XKcKmB5mwoUQkm7ad48klWpGcR+J7iL6j2fVwXXGBNc1JmypWUSE1QeX2t0jSaaa0eCj/jDgfUJ+c2zNTlpS+yHu41fGEq6JSpoWEWEl3dTuHkmD4ONZF2Ae7veyu8in3A1Ud2bzsg388A1lYtnVzE3pRb2ICJ7vfSJeRISVdGeG+FxhsS2o9ahmNqtmLgF6A7Nx/Y+FvlFWB983G+i9hmzPT1P1FnBDmLEasy9RLSKAuUCXsGu4e7N5umUqGMc5EjcUqDvQDpdQJXho8GgLbMOVaiqBWQ125Yh0ApYDF6K6vIQ/gjGIZHsAE1qza/AuWuyopUUhN/WrcflqDjCtVJt5wky6PYGnice0sWqgt+2Iyl8wo6IbbgdfG9xHra3Aqv3ejBQZAWSA01HdEXGoxjQkcvRGOqw6mv/88Q5afZViFhGlCDespAsgkp1NPHaPzFXNDPIYQ3kREdxqYSWq/+U7HFNmRK4FuqN6ee6PilhERCzspNsRtwXV20kBgm5RpLPtiCoxkSOBFcBXUV3mORpTTkSeAyajOt93KPkItf7qewtqa3bteohfVSsTj/Zx/bKm+jbwPWAWInHdLGPSRuRo4CSg4MPOfAn9ppfP3SM7aPWzway6HngKkctKfH3jmsn/DtzkOQ5TPgYCc5J0LyG0I9j3MhE3i2EYpdn7n9s9oqqIrAIeQ6QXMCFJfyGJ5n7344CViPwO1b/4Dsmk3mBgsu8gChFJe5f33SOqq4AewDHAouAjiCkF1XeA7wAzEWnnOxyTYgksLUDIN9IavYCbEDQT10oWZq2vhtwYwcabmUVaANfjksBlqD4V4vXNvog8AryBqg3AMdEQ+S5wav2uhSSIfCOD190jqrWo/hj4D+ABRK4P2ptM9L4N/AciZ/oOxKTWYOBR30EUKvKVboOLBbtHgAG4s48K2UhR3O4RkWNwf0FvA6NQ/aCg7zeFExkI3AKchmrcZnOYJHOlhVXAEUm7Z1PSpLvnomFtQS38wm2AnwJfAQaiurr5P4XJi8iDwNuoft93KCZFElpaAE9J92NBlHr3iMhwXPK9FtUHQn9+kyNyKLAaGILqn3yHY1IiYRsi6otF0vVCpBvwG9zpudZWFiWRAbiTVLujWur+bZM2CS4tQDwmgvnh2spOB47F2sqipToHeAH4se9QTCokbkNEfeWbdAFUtwDfwHVCLEHkPL8Bpdp3gYGI9PYch0m+RHYt1Cnf8sLeRL4M/Aq4DZiK/WLCJ9IPuB3ohupHvsMxCZTw0gKU+0q3PtUngZ7AN3FbiON4pHyyqc4DngGm+A7FJNZAoDKpCRcs6Tak+hZwLq6XdykiX/AcURp9D/gaIn18B2ISaRDwiO8gimHlhaZYW1l0RPoCdwNdUf3QdzgmIVJQWgBLuvtmbWXREfkFoKiO8R2KSQi3IeI0VEf5DqUYVl7YF2sri9IE4EJELvAdiEmMxJcWwJLu/jVsK1tqbWUhcWWFK4Ff2k1Ls19uwXMyCRvj2BhLuvnITSsbDjyIyHU2rSwEqguB+bjauTH7kviuhTqWdAuh+kfccPSBWFtZWCYC5yNyse9ATKylorQAlnQL59rKvgT8C2srK57qVuAKoAIRb6dImxhLUWkBLOk2j2oNquOBm4GnEbnUd0iJ5k70+B3w334DMTGVmtICWNItjur9wJeBHyJyOyKtfYeUYD8Azkakv+9ATOwMIsGzFvZmfbphEDkYmAUcBgxC9Z9+A0ookS/hTnXuhmrzh9Wb9BDphJvHnOgNEfXZSjcM1lYWDtXFuBXN7b5DMbFxCSkqLYAl3fDk2spGYG1lxbgB6InIN30HYmIhVaUFsPJCNNwhmLOBfwKX2yGYBRI5C/f764rqJt/hGE9SWFoAW+lGw9rKiqP6HPAA8D++QzFepa60AJZ0o2NtZcX6L+BURAb5DsR4k7rSAlh5oTREugOP4ba8ZtL2zh0ZkV64/t1uqL7rORpTSiktLYCtdEtDdSVuWtnxuGllnfwGlBCqf8a14v3cbkqWnVSWFsCSbum4trKvA/OwtrJCTMJtAR3iOxBTUqksLYCVF/xwR9Xcjx2CmR+RHrg3q+6o/st3OCZiKS4tgK10/XDTynri9pTPRuSTniOKN9WlwC+Bu6zMUBZSNWthb5Z0fcm1lb2DKzec4jmiuPsh8BngMt+BmMgNJqWlBbDyQjzkDsH8DqoP+g4ntkT+DVgAnIrqBt/hmAikvLQAttKNBzetrA9ws00r2wfVvwHTcbN3rcyQTqkuLYAl3fiwtrJ8TQaOxs24MOmT6tICWNKNF2sr2z+3AhoJTLXTmVPGLTROBhb6DiVKlnTjxk0ruwWbVtY096ngDuAX9rtJldSXFsCSbnzl2souwdrKGnMr8GlgtO9ATGhSX1oAS7rxpvomcA7wLtZW1pDqTmAUcCsix3qOxhSrTEoLYEk3/ty0snG4G0iLEBnmO6TYUF2N29V3j5UZEq8sSgtgSTc5VO/D2soaMwU4GBjjOQ5TnLIoLYBtjkgedwjmfcChwGA7BBMQORlYDPRA9TXf4ZgClcGGiPpspZs0ubayx3F13t4eo4kH1ZdxK957ELHXdPIMBOaWQ8IFS7rJ9PG2solW02Qa0A4Y5zsQU7BBwCO+gygVKy8knbtzPxt4C3cI5oeeI/JH5ETgOeCLqK7zHY7JQ5mVFsBWuslnbWU5qn8HbgFmWJkhMcqqtACWdNPB2srq+xnQErjadyAmL2VVWgArL6SPHYIJIp8FXgDOQPUV3+GYJpRhaQFspZs+bi5BD+AE3NHv5TetzCXam4F7EWnpOxzTpLIrLYAl3XRSfR8YgFvtlmtb2R1ALfBd34GYJpVdaQGsvJB+Il/BHYI5DciW1SGYIp8B/gKcjepa3+GYesq0tAC20k0/1YW4aWWDKLdpZa5tbBIw08oMsVOWpQWwpFseyrutbDpQDUzwHYhpYBBlMmthb1ZeKDciI3ClhmtQfch3OCUhcjywDPhSsGXY+JQrLRyJao3vcErNVrrlJjet7EeI/KwsppWpvg78P2AWIq08R2NypYWyS7hgSbc85drKOlM+bWUVwBbgOs9xmDIuLYAl3fJVbm1lro52BfA9RLr6DqdsuTf4UyiDEyKaYkm3nLlpZZNxp+s+lPppZe6G4g9w3QwH+A6nTJV1aQEs6Root7ayGbgujh/4DqRMlXVpASzpmjq5trKNpLmtzJUZvgV8B5FTPUdTXqy0AFjSNfW5aWVjceMRFyEy1HdIkVBdD0zElRnS370RH2VfWgBLuqYxqrOArwCTU9xWNgtYj2slM6VR9qUFsM0RZl9EDsEdgtkRGITqBs8RhUvkKGAF0BfVv3mOJt3KfENEfbbSNU1r2Fa2DJFzPUcULvcm8n3cpok2vsNJOSstBCzpmn1r2Fb2MCKZlLWVPQCsA270HUjKWWkhYOUFk7/cIZhvAqNTcwimyBHASqAfqkt9h5M6rozzIlZaAGylawqRayvbRJraylT/hRt2PhORtr7DSSErLdRjSdcUJr1tZQ8Da4CbPMeRRoOx0sIeVl4wzec2FzwGzAMmJn4gtcingVXA11H9s+9wUsFKCx9jK13TfKorgNPJTSs7ym9ARVJ9F7gGV2Zo5zuclLDSwl4s6Zri5NrKniANbWWqj+J6d2/2HElaWGlhL1ZeMOERuQC3mSILTEvsIZgin8I18l+C6nO+w0ksKy00yla6JjyqfwC+SN3qJqnTylQ3AeNxZYb2vsNJMCstNMKSrgmX6hvk2sqWJLatTPW3wBJcl4ZpHistNMLKCyY6IiNxpYarUX3YdzgFEzkU181wKarP+A4nUay00CRb6Zro5KaV3YLIfyfutAbV94BxwAxEPuE7nIQZCMyzhPtxlnRNtHJtZZ8hiW1lqpXAs8CtvkNJmEHAI76DiCNLuiZ6ubayBSSzrexa4OuInOc7kERwb6xfoMxPiGiKJV1TGm5a2Y+AUSRtWpl70xiDKzMc6DucBLDSwj7YjTRTeiLH4aaVvUGSppWJ3APsQHWc71BiTWQxMAXVeb5DiSNb6ZrSc21lZ5O8trLvA19F5Cu+A4ktKy3slyVd40duWtmtuGllQ3yHtF+qHwBXAr9M7MaP6FlpYT+svGD8y00rm4ubVrbTb0D7IVIBCKrf8h1K7FhpYb8s6Zp4cIdg3g8cDAyO9SGYbpW7ChiL6gLf4cSGbYjIi5UXTDy4DoH+uLaypbFuK3M3/q4EfoHIwZ6jiRMrLeTBkq6Jj1xb2eW4trIJsW0rU/0jrhxym+9QYsQOn8yDlRdMPOXayl7HtZVt9RtQI9zW4FXANag+7jscr6y0kDdb6Zp4yrWVvYcrN5zsOaKPU/0IGA3cHdSky5mVFvJkSdfEV8O2smdi2Vamugj4DfAzz5H4ZqWFPFl5wSRDnNvKRDoAK4EJqM7xHU7JWWmhILbSNcmQm1bWhbhNK1Otwt38mx7M4C03VloogCVdkxwN28riNa1M9U/AQ8AdvkPxwEoLBbDygkkmkQuBWcBU4KexOATTnae2HLgB1cd8h1MSVloomK10TTKp/h53COZQ4JFYjFxUrcaVGf4HkcN8h1MiVlookCVdk1y5QzA3E5e2MtXngV8Bd/oOpUSstFAgS7om2VS3o3oV8WoruxHoishg34FEKjfG8Q++Q0kSq+mWiEj2KKAbcCDQGtgBbAVWqmbe9hlbauTayiqB67y2lYl8EZgDdEf1HW9xREnkGqAHqiN8h5IklnQjIpI9FHc0TX+gO9AGqAEkeGjwqPvzlbhkMVM1856HkNMhN63sINy0Mn9vaCI/Bk4EBsbiRl/Y3BjHqajO9R1KkljSDZlIticwAZdsa4H2BXx7Na7kUwlMU80sCT/CMiDSArgBd3z6MFQXe4qjDfBXYDKqD3qJISoiRwIvA0fYTbTCWNINiUi2I1ABXAS0pbh6eS2wHXgCGKOa2Vx8hGUoDm1lIqcDjwOnel11h03kaqCnlRYKZzfSQiCS7Q+8CvTDrWyL/b22CJ6nH/CqSPZrRT5feYpDW5nqMtyb8d2xHVPZPIOxroVmsZVuEUSygltFjaOwMkKhqoHpwETVjP2FFUqkLW4gzbnAN1F9ucTXbw0sBbKo3l/Sa0fBSgtFsZVuMwUJtwIYS7QJl+D5xwIVwXVNIXJtZT/BR1uZ6g7cTdVpiHQq6bWjMRCYawm3eSzpNl8WGAZ0KNH1OgTXm1qi66WP6r3ABcCPEbkNkQNKeO3luA0TFSkoM1hpoQhWXmiGoIb7INGvcBtTDQxVzVibTnO5trJfAZ+klG1lLskvAW4P3gCSx0oLRbOVboGCLoWZ+Em4BNedFcRhmsNNK/sabifVMkS+VKLr7sSVGaYgckxJrhk+Ky0UyZJu4Srwl3DrtAfu9hxDsrlDMG/GHbfzSMkOwVRdibup98uElhmstFAkKy8UINj48DT+ky64MkNv1cxS34EkXqkPwXRlhheAu1H9RaTXCpOVFkJhK93CTMBtfIiDNrh4TLEaTitbgshJEV+vrsxwS5Dwk8LGOIbAkm6eglkK/YnP76wlMCCIyxQr11Y2BVgc+YQw1ReBacA9CSozDAIe8R1E0sUlgSTBKNz23DipBUb6DiJVcm1lt5agrSyLmzp3VYTXCIcrLXTDxjgWzZJu/voTj1pufe1xcZkwuZ7afwc+BzwVJJworrML92Z+MyInRHKN8FhpISSWdPPX3XcATYhrXMlWqrYy1TW4nXIzgulocWWlhZDE+S85NoIB5G18x9GEdiLZaFZi5a5hW9mjEbaV3YZ7fY2P4LmLZ6WFUFnSzU833KDxj+nc+SDWr7+KGTP6ksn04JVXrmDw4BMbfM299/bl+ut7Fh3E4sVDWblyJAsXDqJlyz3/9rcH8Zmo5KaVDSOKaWWqu3FlhpsQ6RLqc4fDSgshauU7gIQ4EHfaAwMGdOGWW84BYOrUpZx//jEccojrIpsw4XSqq3dy/PEHsXbtaDZs+Iif/nQZAN/4xmcZNeoUZsx4kd/+9hUefvhrtGwpvPDCBm69dQmvvHIF8+b9g0cf/TtXXdWd1q1b8uKLmxgzJre4OP/8RzjiiA6sXTuaNm1aUV29kyAu/yfhpp3q64icDdyOayv7ZlAaCOv5/xeRHwH3InIuqnG6aTsId9PPhMBWuvlpTZB0r7yyK3feuZxJk55j/PhTueeeF3nzzQ8ZPXoBCxa8RkXFKh544GXmzl3H6tWbqK7eBcDCha8zZcpSzjvvWAYM6MK6dVvo0+dRxo49lQ4dDkBEGD58PjU1u+nW7TBqanbTp89xdOyYaws+6aSOzJ7dn379flOXcAniimvpI11cW9kYomsruz3473dCft7ms9JC6Gylm58duPPMmDHjRSZPPhuAbLbxzWCdOx/Maad9mk6dPsGaNe64s48+2kltrSIClZXrGD78ZJ58cjAVFSupqtrJrl21VFXtZNGit1i9eiMAS5a8zebN2/c87wsvXMY//7mVSZPOZN26+bz11laCuOxjXymp3ovICuAxRM4grEMwVWsRuRz4MyLzUf3fop+zeFZaCJltA86DSLYv8BDusMO4+QAYopr5ve9Ayk5U08rcKbvDgHOCeq8/Is/ghq/bVLuQWHkhP6uI7Ud4bYuLz5Tax9vKzgnpme/Efbq6NqTnax4rLUTCVrp5EsluIYYr3YPYplu48TXgueDxLLAmZjdi0i93COYU4LaiD8EU6Qz8BbfaXVt8gM2K4Wrgi6gO93L9lLKVbv5W+g6gMR/QdjFutfUscCYwB9iEyOOI3IDIuYjEbSdd+ri2sl7ApYTRVqb6D+BGYBYivu69DMLGOIbOkm7+KnHjFOOkGqQS1ZdRrUB1JKpdgJOBe4BDcbudNiLyF0R+ishARI7wGnVaqb4OnA28TzjTyu4GtuJjmpyVFiJj5YU8BdO81hOf0Y7gNkYcrZp5b59f5Va6PYCzgscZuDGGz9V7WEkiTK4LYQrwbVSbv33WjX5cBvRG9aWQosvnulZaiIgl3QKIZB8GLiEenxB2A7NVM0ML/k63x/8kckn4LKAjbrB2XRJeguq20KItRyL/hhuOPodi2spEvoWbRHZGKK1p+V3zGWAaqpUluV4ZsaRbgFSfHOFKDmfiPh6fBXwBWE391bDqO6Fcq5yIdATup5i2MjfvYQGwGNXJ4QbY6PXqTog4EtXt+/tyUxhLugUSyc4G+uG3hawGmKuaGRTZFawkER73yeI/cavVoaj+qRnPcQzwN+DLqEbbImilhUhZ0i1QcArvq8AhHsN4H/iMaub9kl2xYUmibjV8CPA8uSS81EoS+yDSF3eSdPPaykRGA9cAPSMtM1hpIVKWdJtBJNsfeBA/ZYZqYKhqxv8OIVeSqF8XtpLE/ogcj6vz/gO4oqBDMF2Z4XHgL6j+/4jis9JCxCzpNpNINguMBTqU8LJVwF2qmUwJr5m/hiWJs3ElifdwPcR1iXht2ZckRNrihtucAxQ2rUykE7AcuADVFRHEZqWFiFnSbSaRrAAVuD3ypUi8VbjV9RjVTDL+0lxJ4mQaroYPpmGXRPmWJHJtZeNRzX8TgsgIXO9uD1R3hByTlRYiZkm3CEHinQqMI9pSQzUwHZiYmITbFPfx9Uw+XpLIrYZV3/UXYInl2sp+B1yfV63WlRnmACtQvTHEWKy0UAKWdEMQ1Hhn4hJvmF0NNbiEOzIWNdwouJJETxp2SWyiYZdEuksSzWkrcwlyBXAxqn8NKY5vA72stBAtS7ohCboaKoCLcIm3ZRFPtxuXcOcDV6lmNhcfYULsvyTxLLAsdSWJ5rSViVwK3AD8+/7m3Qbn/HXDnTLSGjfFbCuwUjXzdvBFVlooAUu6IRPJ9sDV2wYAtRRWdqjG7XabA0wLbeND0rlVXf0kfApunGX9Lol0lCRcW9ks3MyMfbeVuTLDY7hPAjc0/F/ZQ3HnrvXHnRjdBvdGLsFDg0cboKYNO9dM4g/dn6FLlwX6iw1h/1gmx5JuRIIX/UhyL/p2uFkJe7/o2wLbcFPMKoFZ+52lUO7SXpIopK1M5HDca6c/qkuCXZMTcK+7gt70W7Nr1w5a7cK9DqepZpY0+2cwTbKkWyLBMel1H+/qVh1bgVV7Pt6Z5nEfzU+h4Wr4ID6+cSM5N4dcW9kduNa7fbeViQx+lw43H8V/vbSblhfi3siLmQ9Si1sgPIHrlimf8lYJWNI16ZSWkoTbhfYT9tFWJpLt34Ga2dtp1WI3LYu5l7C39N/I9cCSrikPIh1wGzfqtjCfAbzLx0sS8fsH0URbmbUsJpMlXVOeklaSyLWVHQgMEab+C9uck0iWdI2pI3IUDcdbnoy7SVW/JLHRY3x1bWVjTiLz7FoO74dtQ08cS7rGNMWVJPbukvBekrhSBt30a067cRutpZTXDcRn4FJCWdI1Jl8NSxJ1q+EDaViSWBZlSSJGo0W7WFdD8/g6ZdSY5HF9v6uDx11AXUmibiV8G3AyIlGWJCrwf3JJe9yhmdEN0U8xW+kaE6amSxL1x1v+vTkliVQfF1VGbKVrTJhUq3CJ8WkARFqSK0mch7sRdiAizSlJTCA+p1G3wcVT+MGoZc5WusaUWsOSxN5dEs8Cz+9dkgi2la8nPkkX3K61o23bemHicJS4MeVFdQOqj6J6Lao9gMNxK+APcRsdXkHk74jMQOQKRD4POgq3PTdOanHzRUwBbKVrTNw0LEmcBZx1FuM7Pc8JB/gNrFHPqGZ6+w4iSSzpGpMALWTqB4p80nccjdiimvHZvpY4Vl4wJuZEskcp0tp3HE1oF0zQM3mypGtM/HXDTfzar0mTzmT69D77/brjjz+IbduuBeDcc49hzZrLmxvb9iA+kydrGTMm/g7EDb7PS69eR7F8+QjefruKjh3b0qKFMG/eOp55Zj2PPdafJUv+xa5dtbRu3ZKnnx7CT36yhMMOa88TTwzk8MPbc/rpv6K2Nu+yowTxmTzZSteY+GtNAUn3hRc2MHz4fHr3Pppjjz2Q7dt3MXTo5wHYubOWiy9+jGuueZIdO3Zz3nkPs23bLrZt28XFFz/Gaacdzqc+1a6Q2IRwD2NNPUu6xsTfDtzRTnnp1etI7rvvIhYtWs+bb25l165aFi58A4AtW9wejI0bt/HOO9U89FA/AD76aAd199SlsDE6Sp6lD+NY94IxMSeS7Qs8hJv3GzcfAENUM7/3HUhS2ErXmPhbRXw/wrfFxWfyZEnXmJhTzWwgvh/ht9nBqoWxpGtMMqz0HUAT4hpXbFnSNSYZKnHjFOOkGheXKYAlXWOSYSbx+/faApjlO4ikidtfojGmEcH4xEriM2lsNzDHxjoWzpKuMckxDbftNg5qcPGYAlnSNSYhVDNLgCfw38lQA8y3o3qax5KuMckyBv831KqDOEwzWNI1JkGCY89H4S/xVgMjVTPve7p+4lnSNSZhVDOVwHSgqsSXrgKmq2bmlvi6qWJJ15hkmgg8SOkSb1VwvYklul5qWdI1JoFUM4qrq95F9KWG6uA6Y4LrmiLYlDFjEk4k2x+3eaI94Q7GqSFXw7WSQkhspWtMwgU13i7APFyS3F3kU+4Onmcu0MUSbrhspWtMiohkewATgAG43WvtC/j2atxCbA4wzfpwo2FJ15gUEskeCowE+gPdgXa43WwSPDR4tAW24aaFVQKzbGtvtCzpGmNMCVlN1xhjSsiSrjHGlJAlXWOMKSFLusYYU0KWdI0xpoT+D4t06Y5WFiD4AAAAAElFTkSuQmCC\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -114,7 +114,8 @@ " \"capacity\": 100,\n", " \"level\": 100,\n", " }\n", - "locations.append(Location(**data_berth))\n", + "# treat berth separately \n", + "# locations.append(Location(**data_berth))\n", "berth = Location(**data_berth)\n", "\n", "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", @@ -129,17 +130,17 @@ "\n", "\n", "# Create a network with five nodes and a central node\n", - "graph = nx.DiGraph()\n", + "graph = nx.Graph()\n", "\n", "# Add nodes to the network\n", "locations = [berth] + locations\n", "for location in locations:\n", - " graph.add_node(location.name)\n", + " graph.add_node(location.name, geometry=location.geometry)\n", + " \n", "\n", "# Add edges between the central node and all other nodes\n", "for location in locations[1:]:\n", " graph.add_edge(berth.name, location.name)\n", - " graph.add_edge(location.name, berth.name)\n", "\n", "# Draw the network\n", "pos = {location.name: (location.geometry.x, location.geometry.y) for location in locations}\n", @@ -172,223 +173,10 @@ { "data": { "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -458,6 +246,8 @@ " openclsim.core.HasResource,\n", " openclsim.core.HasContainer,\n", " openclsim.core.Processor,\n", + " openclsim.core.LoadingFunction,\n", + " openclsim.core.UnloadingFunction,\n", " # capture extra metadata to make sure we don't have leftover arguments\n", " opentnsim.core.ExtraMetadata\n", " ),\n", @@ -569,26 +359,38 @@ "display(path9)\n", " \n", "# create a dict with all important settings\n", - "data_vessel02 = {\"env\": my_env,\n", - " \"name\": 'seagoing vessel 1',\n", - " \"geometry\": location_offshore_01,\n", - " \"route\": path1+path2[1:],\n", - " \"capacity\": 1000,\n", - " \"v\": 1}\n", + "data_vessel02 = {\n", + " \"env\": my_env,\n", + " \"name\": 'seagoing vessel 1',\n", + " \"geometry\": location_offshore_01,\n", + " \"route\": path1+path2[1:],\n", + " \"capacity\": 1000,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 1,\n", + " \"v\": 1\n", + "}\n", "\n", - "data_vessel03 = {\"env\": my_env,\n", - " \"name\": 'seagoing vessel 2',\n", - " \"geometry\": location_offshore_02,\n", - " \"route\": path3+path4[1:],\n", - " \"capacity\": 1500,\n", - " \"v\": 1}\n", + "data_vessel03 = {\n", + " \"env\": my_env,\n", + " \"name\": 'seagoing vessel 2',\n", + " \"geometry\": location_offshore_02,\n", + " \"route\": path3+path4[1:],\n", + " \"capacity\": 1500,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 1,\n", + " \"v\": 1\n", + "}\n", "\n", - "data_vessel04 = {\"env\": my_env,\n", - " \"name\": 'seagoing vessel 3',\n", - " \"geometry\": location_offshore_03,\n", - " \"route\": path5+path6[1:],\n", - " \"capacity\": 2000,\n", - " \"v\": 1}\n", + "data_vessel04 = {\n", + " \"env\": my_env,\n", + " \"name\": 'seagoing vessel 3',\n", + " \"geometry\": location_offshore_03,\n", + " \"route\": path5+path6[1:],\n", + " \"capacity\": 2000,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 1,\n", + " \"v\": 1\n", + "}\n", "\n", "\n", "# instantiate vessel_02 \n", @@ -601,6 +403,27 @@ { "cell_type": "code", "execution_count": 10, + "id": "01fad10e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<__main__.TransportProcessingResource at 0x16bee2b80>" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vessel03" + ] + }, + { + "cell_type": "code", + "execution_count": 11, "id": "fbc43ab7", "metadata": {}, "outputs": [], @@ -611,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "063534c4", "metadata": {}, "outputs": [], @@ -619,7 +442,7 @@ "# create a 'while activity' that contains a pre-packed set of 'sub_processes'\n", "single_run, while_activity = openclsim.model.single_run_process(\n", " name = \"activity vessel 1\",\n", - " registry={},\n", + " registry=registry,\n", " env=my_env,\n", " origin=berth,\n", " destination=dump,\n", @@ -631,7 +454,7 @@ "sub_processes_vessel02 = openclsim.model.MoveActivity(\n", " env=my_env,\n", " name=\"Move activity vessel 2\",\n", - " registry={},\n", + " registry=registry,\n", " mover=vessel02,\n", " destination=berth,\n", ")\n", @@ -639,7 +462,7 @@ "sub_processes_vessel03 = openclsim.model.MoveActivity(\n", " env=my_env,\n", " name=\"Move activity vessel 3\",\n", - " registry={},\n", + " registry=registry,\n", " mover=vessel03,\n", " destination=berth,\n", ")\n", @@ -647,7 +470,7 @@ "sub_processes_vessel04 = openclsim.model.MoveActivity(\n", " env=my_env,\n", " name=\"Move activity vessel 4\",\n", - " registry={},\n", + " registry=registry,\n", " mover=vessel04,\n", " destination=berth,\n", ")\n", @@ -662,7 +485,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "c7e5d1f0", "metadata": {}, "outputs": [], @@ -672,7 +495,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "126557f8", "metadata": {}, "outputs": [ @@ -682,30 +505,27 @@ "text": [ "mover seagoing vessel 1 destination berth\n", "mover seagoing vessel 2 destination berth\n", - "mover seagoing vessel 3 destination berth\n" - ] - }, - { - "ename": "Exception", - "evalue": "No activity found in ActivityExpression for id/name activity vessel 1", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:276\u001b[0m, in \u001b[0;36mGenericActivity.delayed_process\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 266\u001b[0m log\u001b[38;5;241m.\u001b[39mlog_entry_v1(\n\u001b[0;32m 267\u001b[0m t\u001b[38;5;241m=\u001b[39menv\u001b[38;5;241m.\u001b[39mnow,\n\u001b[0;32m 268\u001b[0m activity_id\u001b[38;5;241m=\u001b[39mactivity_log\u001b[38;5;241m.\u001b[39mid,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 273\u001b[0m },\n\u001b[0;32m 274\u001b[0m )\n\u001b[1;32m--> 276\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmain_process_function(activity_log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, env\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv)\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\parallel_activity.py:69\u001b[0m, in \u001b[0;36mParallelActivity.main_process_function\u001b[1;34m(self, activity_log, env)\u001b[0m\n\u001b[0;32m 67\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(stop_events) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 68\u001b[0m \u001b[38;5;66;03m# wait until any stop event is processed\u001b[39;00m\n\u001b[1;32m---> 69\u001b[0m event_trigger \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse_expression\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 70\u001b[0m \u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mor\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mevent\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mevent\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mstop_events\u001b[49m\u001b[43m]\u001b[49m\u001b[43m}\u001b[49m\u001b[43m]\u001b[49m\n\u001b[0;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 72\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m event_trigger\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:164\u001b[0m, in \u001b[0;36mGenericActivity.parse_expression\u001b[1;34m(self, expr)\u001b[0m\n\u001b[0;32m 163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 164\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mall_of([\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparse_expression(item) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr])\n\u001b[0;32m 165\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mdict\u001b[39m):\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:164\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 164\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mall_of([\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse_expression\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr])\n\u001b[0;32m 165\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(expr, \u001b[38;5;28mdict\u001b[39m):\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:172\u001b[0m, in \u001b[0;36mGenericActivity.parse_expression\u001b[1;34m(self, expr)\u001b[0m\n\u001b[0;32m 170\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m expr:\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39many_of(\n\u001b[1;32m--> 172\u001b[0m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparse_expression(item) \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\n\u001b[0;32m 173\u001b[0m )\n\u001b[0;32m 174\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontainer\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:172\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 170\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m expr:\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39many_of(\n\u001b[1;32m--> 172\u001b[0m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse_expression\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m item \u001b[38;5;129;01min\u001b[39;00m expr[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\n\u001b[0;32m 173\u001b[0m )\n\u001b[0;32m 174\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontainer\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\base_activities.py:204\u001b[0m, in \u001b[0;36mGenericActivity.parse_expression\u001b[1;34m(self, expr)\u001b[0m\n\u001b[0;32m 203\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m activity_ \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 204\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\n\u001b[0;32m 205\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo activity found in ActivityExpression for id/name \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mkey\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 206\u001b[0m )\n\u001b[0;32m 207\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mall_of(\n\u001b[0;32m 208\u001b[0m [activity_item\u001b[38;5;241m.\u001b[39mmain_process \u001b[38;5;28;01mfor\u001b[39;00m activity_item \u001b[38;5;129;01min\u001b[39;00m activity_]\n\u001b[0;32m 209\u001b[0m )\n", - "\u001b[1;31mException\u001b[0m: No activity found in ActivityExpression for id/name activity vessel 1", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[13], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# start the simulation\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[43mmy_env\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:254\u001b[0m, in \u001b[0;36mEnvironment.run\u001b[1;34m(self, until)\u001b[0m\n\u001b[0;32m 252\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 253\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 255\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m StopSimulation \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 256\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m exc\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;66;03m# == until.value\u001b[39;00m\n", - "File \u001b[1;32m~\\Anaconda3\\envs\\myenv\\lib\\site-packages\\simpy\\core.py:206\u001b[0m, in \u001b[0;36mEnvironment.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 204\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(event\u001b[38;5;241m.\u001b[39m_value)(\u001b[38;5;241m*\u001b[39mevent\u001b[38;5;241m.\u001b[39m_value\u001b[38;5;241m.\u001b[39margs)\n\u001b[0;32m 205\u001b[0m exc\u001b[38;5;241m.\u001b[39m__cause__ \u001b[38;5;241m=\u001b[39m event\u001b[38;5;241m.\u001b[39m_value\n\u001b[1;32m--> 206\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n", - "\u001b[1;31mException\u001b[0m: No activity found in ActivityExpression for id/name activity vessel 1" + "mover seagoing vessel 3 destination berth\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n", + "mover dredging vessel destination berth\n", + "mover dredging vessel destination dump\n" ] } ], @@ -716,18 +536,247 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "9b76eccc", "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TimestampActivityIDActivityStateObjectStateActivityLabelMessageValueGeometry
01970-01-01 00:00:00.000000807410a2-313b-40b1-b78b-6aac7a4c695dSTART{'container level': 0.0, 'geometry': POINT (4....{}NaNNaNNaN
11970-01-01 00:00:10.000000807410a2-313b-40b1-b78b-6aac7a4c695dSTOP{'container level': 10.0, 'geometry': POINT (4...{}NaNNaNNaN
21970-01-01 01:00:10.000000NaNNaNNaNNaNSailing from node berth to node dump start0.0POINT (4.062705498083785 51.95909715255291)
31970-01-01 01:32:10.113018NaNNaNNaNNaNSailing from node berth to node dump stop0.0POINT (4.1795229742823 52.11590591837503)
41970-01-01 00:32:10.11301869ded8bb-e42c-4dea-9ec9-e322af464874START{'container level': 10.0, 'geometry': POINT (4...{}NaNNaNNaN
...........................
641970-01-01 09:38:00.034332807410a2-313b-40b1-b78b-6aac7a4c695dSTOP{'container level': 10.0, 'geometry': POINT (4...{}NaNNaNNaN
651970-01-01 10:38:00.034332NaNNaNNaNNaNSailing from node berth to node dump start0.0POINT (4.062705498083785 51.95909715255291)
661970-01-01 11:10:00.147350NaNNaNNaNNaNSailing from node berth to node dump stop0.0POINT (4.1795229742823 52.11590591837503)
671970-01-01 10:10:00.14735069ded8bb-e42c-4dea-9ec9-e322af464874START{'container level': 10.0, 'geometry': POINT (4...{}NaNNaNNaN
681970-01-01 10:10:02.14735069ded8bb-e42c-4dea-9ec9-e322af464874STOP{'container level': 0.0, 'geometry': POINT (4....{}NaNNaNNaN
\n", + "

69 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " Timestamp ActivityID \\\n", + "0 1970-01-01 00:00:00.000000 807410a2-313b-40b1-b78b-6aac7a4c695d \n", + "1 1970-01-01 00:00:10.000000 807410a2-313b-40b1-b78b-6aac7a4c695d \n", + "2 1970-01-01 01:00:10.000000 NaN \n", + "3 1970-01-01 01:32:10.113018 NaN \n", + "4 1970-01-01 00:32:10.113018 69ded8bb-e42c-4dea-9ec9-e322af464874 \n", + ".. ... ... \n", + "64 1970-01-01 09:38:00.034332 807410a2-313b-40b1-b78b-6aac7a4c695d \n", + "65 1970-01-01 10:38:00.034332 NaN \n", + "66 1970-01-01 11:10:00.147350 NaN \n", + "67 1970-01-01 10:10:00.147350 69ded8bb-e42c-4dea-9ec9-e322af464874 \n", + "68 1970-01-01 10:10:02.147350 69ded8bb-e42c-4dea-9ec9-e322af464874 \n", + "\n", + " ActivityState ObjectState \\\n", + "0 START {'container level': 0.0, 'geometry': POINT (4.... \n", + "1 STOP {'container level': 10.0, 'geometry': POINT (4... \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 START {'container level': 10.0, 'geometry': POINT (4... \n", + ".. ... ... \n", + "64 STOP {'container level': 10.0, 'geometry': POINT (4... \n", + "65 NaN NaN \n", + "66 NaN NaN \n", + "67 START {'container level': 10.0, 'geometry': POINT (4... \n", + "68 STOP {'container level': 0.0, 'geometry': POINT (4.... \n", + "\n", + " ActivityLabel Message Value \\\n", + "0 {} NaN NaN \n", + "1 {} NaN NaN \n", + "2 NaN Sailing from node berth to node dump start 0.0 \n", + "3 NaN Sailing from node berth to node dump stop 0.0 \n", + "4 {} NaN NaN \n", + ".. ... ... ... \n", + "64 {} NaN NaN \n", + "65 NaN Sailing from node berth to node dump start 0.0 \n", + "66 NaN Sailing from node berth to node dump stop 0.0 \n", + "67 {} NaN NaN \n", + "68 {} NaN NaN \n", + "\n", + " Geometry \n", + "0 NaN \n", + "1 NaN \n", + "2 POINT (4.062705498083785 51.95909715255291) \n", + "3 POINT (4.1795229742823 52.11590591837503) \n", + "4 NaN \n", + ".. ... \n", + "64 NaN \n", + "65 POINT (4.062705498083785 51.95909715255291) \n", + "66 POINT (4.1795229742823 52.11590591837503) \n", + "67 NaN \n", + "68 NaN \n", + "\n", + "[69 rows x 8 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.DataFrame(vessel01.logbook)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "982c209a", + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "myenv", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "myenv" + "name": "python3" }, "language_info": { "codemirror_mode": { From be26f71c7e21ed8cfcdd52bfadc4fa5d7c856237 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Wed, 3 May 2023 13:34:52 +0200 Subject: [PATCH 054/100] Update indicators.py --- src/openclsim/core/Indicators.py | 154 +++++++++++++++++++++++++++---- 1 file changed, 138 insertions(+), 16 deletions(-) diff --git a/src/openclsim/core/Indicators.py b/src/openclsim/core/Indicators.py index 348000cc..9c7d73fe 100644 --- a/src/openclsim/core/Indicators.py +++ b/src/openclsim/core/Indicators.py @@ -1,11 +1,16 @@ import simpy import random +from datetime import timedelta +import math # A Port class is defined to specify the port specifications (number of available berths, number of cranes, and water level) class Port: - def __init__(self, env, num_berths, num_cranes, water_level): + def __init__(self, env, name, num_berths, num_cranes, water_level, annual_port_calls, annual_anchorage_visits, anchorage_delays, *args, **kwargs): + super().__init__(*args, **kwargs) + + # attributes related to port accessibility self.env = env self.num_berths = num_berths self.num_cranes = num_cranes @@ -13,15 +18,23 @@ def __init__(self, env, num_berths, num_cranes, water_level): self.cranes = simpy.Resource(env, capacity=num_cranes) self.queues = [] self.wait_times = [] - self.num_ships = 0 - self.num_ships_served = 0 + self.num_ships = 3 + self.num_ships_served = 3 self.water_level = water_level - self.accessibility = 0.5 # Starts at 100% accessibility + self.accessibility = 0.3 # Starts at x% accessibility - def handle_ship(self, ship): + # attributes related to port processes + self.annual_port_calls = annual_port_calls + self.annual_anchorage_visits = annual_anchorage_visits + self.anchorage_delays = anchorage_delays + self.vessel_types = ['container', 'bulk', 'dredger'] + self.turnaround_times = {vessel_type: [] for vessel_type in self.vessel_types} + self.berth_occupancies = {vessel_type: [] for vessel_type in self.vessel_types} + self.anchorage_occupancies = {vessel_type: [] for vessel_type in self.vessel_types} + def handle_ship(self, ship): # Check if water level is appropriate for navigating - if self.water_level < 10: + if self.water_level < 15: self.accessibility -= 0.1 # Reduce accessibility by 10% if water level is too low self.dredge() # Select a dredging strategy @@ -76,26 +89,135 @@ def run(self, sim_time): avg_service_time = sum(data[4] for data in self.queues) / len(self.queues) avg_throughput = self.num_ships_served / sim_time + # Showing the port processes key performance indicators print("Average wait time: {:.2f}".format(avg_wait_time)) print("Average service time: {:.2f}".format(avg_service_time)) print("Average throughput: {:.2f}".format(avg_throughput)) print("Accessibility: {:.2f}%".format(self.accessibility * 100)) + def process_vessel(self, vessel): + vessel_type = vessel.name.split('_')[0] + if vessel_type not in self.vessel_types: + raise ValueError(f'Invalid vessel type: {vessel_type}') + port_calls = self.annual_port_calls[vessel_type] / 12 + anchorage_visits = self.annual_anchorage_visits[vessel_type] / 12 + anchorage_delays = self.anchorage_delays[vessel_type] + berth_occupancy = len(self.resources['Berth']) / self.resources['Berth'].capacity + anchorage_occupancy = len(self.resources['Anchorage']) / self.resources['Anchorage'].capacity + turnaround_time = self.calculate_turnaround_time( + port_calls, anchorage_visits, anchorage_delays, berth_occupancy, anchorage_occupancy + ) + self.turnaround_times[vessel_type].append(turnaround_time) + self.berth_occupancies[vessel_type].append(berth_occupancy) + self.anchorage_occupancies[vessel_type].append(anchorage_occupancy) + yield self.env.timeout(timedelta(days=30)) + + def calculate_turnaround_time(self, port_calls, anchorage_visits, anchorage_delays, berth_occupancy, anchorage_occupancy): + # calculate the expected time a vessel spends in the port based on the input parameters + time_in_port = 2 # assume 2 days in port + time_at_anchorage = 1 # assume 1 day at anchorage + time_delayed_at_anchorage = time_at_anchorage * anchorage_delays + time_in_transit = 4 # assume 4 days in transit + total_time = (time_in_port + time_at_anchorage + time_delayed_at_anchorage + time_in_transit) + return total_time / port_calls + def dredge(self): # Select a dredging strategy based on current accessibility if self.accessibility <= 0.5: + # Strategy 1: Rent a dredger to remove sediment and deepen the channel - dredger_cost = 5000 # Cost to rent a dredger for 1 day - dredger_speed = 50 # Cubic meters of sediment dredged per hour - dredging_speed = 10 # Cubic meters of sediment that accumulate per hour - time_needed = (1 - self.accessibility) * self.num_ships * dredging_speed / dredger_speed - sediment_dredged = time_needed * dredger_speed - self.accessibility = min(1, self.accessibility + dredging_speed / (dredger_speed * time_needed)) + + # (Reference: "Dredging: A Handbook for Engineers," 2nd Edition, by J. van den Herik and H. Voormolen, CRC Press, 2006) + # assigning problem parameters + x = 400 # loading rate (tons per hour) + f_p = 1000 # fuel price ($ per liter) + f_co = 10 # fuel consumption rate (liters per hour) + m_p = 200 # unit maintenance cost ($ per hour) + c_p = 400 # unit crew cost ($ per hour) + p = 13000 # engine power (kilowatts) + d_l = 2000 # dredger length (meters) + + # defining different equations to calculate the dredger's cost + dredger_speed = (p * 0.8) / (d_l * 0.5) + dredging_speed = dredger_speed * (x / 60) + dredging_time = (1-self.accessibility) * self.num_ships * dredging_speed / dredger_speed + fuel_total_cost = (f_p * f_co) * dredging_time + maintenance_total_cost = m_p * dredging_time + crew_total_cost = c_p * dredging_time + sediment_dredged = dredging_time * dredger_speed + total_cost = fuel_total_cost + maintenance_total_cost + crew_total_cost + + self.accessibility = min(1, self.accessibility + dredging_speed / (dredger_speed * dredging_time)) print("Dredging strategy 1 selected. Accessibility: {:.2f}%. Amount of sediment dredged: {:.2f} cubic meters.".format( self.accessibility * 100, sediment_dredged)) + print("dredger speed: {:.2f}".format(dredger_speed)) + print("dredging speed: {:.2f}".format(dredging_speed)) + print("dredgin time: {:.2f}".format(dredging_time)) + print("sediment dredged: {:.2f}".format(sediment_dredged)) + print("total cost: {:.2f}".format(total_cost)) else: - # Strategy 2: Deploy underwater curtains to reduce sediment accumulation - curtain_cost = 1000 # Cost to deploy curtains for 1 day - curtain_effectiveness = 0.2 # Percentage reduction in sediment accumulation - self.accessibility = min(1, self.accessibility + curtain_effectiveness) + + # Strategy 2: Deploy air bubble screen to reduce sediment accumulation + + # formulating the effectiveness of air bubble screen + # Input parameters + H = 5 # Depth of water (m) + U = 1 # Velocity of flow (m/s) + D = 0.01 # Diameter of bubbles (m) + L = 50 # Length of air bubble screen (m) + C0 = 200 # Initial sediment concentration (mg/L) + C1 = 150 # Sediment concentration after using air bubble screen (mg/L) + + # Calculation of Reynolds number + nu = 1.5 * 10**-6 # Kinematic viscosity of water (m^2/s) + Re = U * D / nu + + # Calculation of settling velocity using Rouse equation + Ws = 0.038 * math.sqrt(Re) * D * (H/(H+L))**(5/4) # Settling velocity (m/s) + + # Calculation of sediment transport rate + Qt = 2/3 * math.pi * D**2 * Ws * C0 + + # Calculation of sediment reduction percentage after using air bubble screen + Reduction_rate = (C0 - C1) / C0 + + # formulating the total cost of air bubble screen (Ozyurt et al. (2018)), (Wang et al. (2021)) + # Capital costs + num_generators = 2 + num_compressors = 2 + num_operators = 4 + bubble_generator_cost = 1000 # cost per bubble generator + air_compressor_cost = 5000 # cost per air compressor + installation_cost = 10000 # estimated installation cost + total_capital_cost = bubble_generator_cost * num_generators + air_compressor_cost * num_compressors + installation_cost + + # Operating costs + electricity_cost = 0.10 # cost per kWh + electricity_consumption = 50 # kWh per day + maintenance_cost = 0.02 # cost per dollar of equipment cost + labor_cost = 20.0 # cost per hour of labor + water_treatment_cost = 5000.0 # estimated cost per year + total_operating_cost = (electricity_cost * electricity_consumption + maintenance_cost * + total_capital_cost + labor_cost * num_operators + water_treatment_cost) + + # Environmental costs + noise_barrier_cost = 20000.0 # estimated cost of noise barrier + acoustic_monitoring_cost = 5000.0 # estimated cost of acoustic monitoring + total_environmental_cost = noise_barrier_cost + acoustic_monitoring_cost + + # Insurance and liability costs + liability_insurance_cost = 10000.0 # estimated cost of liability insurance + total_insurance_cost = liability_insurance_cost + + # Opportunity costs + lost_revenue_cost = 50000.0 # estimated cost of lost revenue during implementation + total_opportunity_cost = lost_revenue_cost + + # Total cost + total_cost_air_bubble_screen = total_capital_cost + total_operating_cost + \ + total_environmental_cost + total_insurance_cost + total_opportunity_cost + + self.accessibility = min(1, self.accessibility + Reduction_rate) print("Dredging strategy 2 selected. Accessibility: {:.2f}%.".format(self.accessibility * 100)) + print("total cost of air bubble screen: {:.2f}".format(total_cost_air_bubble_screen)) + print("air bubble screen reduction rate: {:.2f}".format(Reduction_rate)) From 0224df29deffd6f46144826bec37428d1360445c Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Mon, 8 May 2023 13:58:44 +0200 Subject: [PATCH 055/100] update init.py and indicators.py --- src/openclsim/core/Indicators.py | 392 ++++++++++++++++++++++--------- src/openclsim/core/__init__.py | 4 +- 2 files changed, 279 insertions(+), 117 deletions(-) diff --git a/src/openclsim/core/Indicators.py b/src/openclsim/core/Indicators.py index 9c7d73fe..91e588bb 100644 --- a/src/openclsim/core/Indicators.py +++ b/src/openclsim/core/Indicators.py @@ -7,176 +7,262 @@ class Port: - def __init__(self, env, name, num_berths, num_cranes, water_level, annual_port_calls, annual_anchorage_visits, anchorage_delays, *args, **kwargs): + def __init__( + self, + env, + name, + num_berths, + num_cranes, + water_level, + annual_port_calls, + annual_anchorage_visits, + anchorage_delays, + *args, + **kwargs, + ): super().__init__(*args, **kwargs) # attributes related to port accessibility self.env = env + self.name = name self.num_berths = num_berths self.num_cranes = num_cranes self.berths = simpy.Resource(env, capacity=num_berths) self.cranes = simpy.Resource(env, capacity=num_cranes) self.queues = [] self.wait_times = [] - self.num_ships = 3 - self.num_ships_served = 3 + self.num_vessels = 4 + self.num_vessels_served = 1 self.water_level = water_level - self.accessibility = 0.3 # Starts at x% accessibility + self.accessibility = 0.3 # initial %x accessibility # attributes related to port processes self.annual_port_calls = annual_port_calls self.annual_anchorage_visits = annual_anchorage_visits self.anchorage_delays = anchorage_delays - self.vessel_types = ['container', 'bulk', 'dredger'] - self.turnaround_times = {vessel_type: [] for vessel_type in self.vessel_types} - self.berth_occupancies = {vessel_type: [] for vessel_type in self.vessel_types} - self.anchorage_occupancies = {vessel_type: [] for vessel_type in self.vessel_types} - - def handle_ship(self, ship): + # self.vessel_types = ["container", "bulk", "dredger"] + # self.turnaround_times = {vessel_type: [] for vessel_type in self.vessel_types} + # self.berth_occupancies = {vessel_type: [] for vessel_type in self.vessel_types} + # self.anchorage_occupancies = { + # vessel_type: [] for vessel_type in self.vessel_types + # } + + def handle_vessel(self, vessel): # Check if water level is appropriate for navigating + # accessibility is reduced by %10 if the water level is too low if self.water_level < 15: - self.accessibility -= 0.1 # Reduce accessibility by 10% if water level is too low - self.dredge() # Select a dredging strategy - - # Record the time the ship arrives - arrival_time = self.env.now + self.accessibility -= 0.1 + self.dredge() # Select a dredging strategy + arrival_time = self.env.now # Record the time the ship arrives\ with self.berths.request() as berth: - # Wait for an available berth - yield berth - - # Record the time the ship begins unloading - unloading_start_time = self.env.now - - # Simulate the unloading process - unloading_time = random.randint(1, 5) # Replace with actual unloading time distribution - yield self.env.timeout(unloading_time) - - # Record the time the ship finishes unloading - unloading_finish_time = self.env.now - - # Record the wait time for the ship in the queue - wait_time = unloading_start_time - arrival_time - self.wait_times.append(wait_time) - - # Record the number of ships served - self.num_ships_served += 1 - - # Record the time the ship leaves the port - departure_time = self.env.now - - # Record the total time the ship spent in the port - total_time = departure_time - arrival_time - - # Record the ship's data - self.queues.append((arrival_time, unloading_start_time, unloading_finish_time, departure_time, total_time)) - - def generate_ship(self): + with self.cranes.request() as crane: + # Wait for available berth and crane + yield berth + yield crane + + unloading_start_time = self.env.now + + # Simulate the unloading process + # Replace with actual unloading time distribution + unloading_time = random.randint(1, 5) + yield self.env.timeout(unloading_time) + + # Record the time the ship finishes unloading + unloading_finish_time = self.env.now + + # Record the wait time for the ship in the queue + wait_time = unloading_start_time - arrival_time + self.wait_times.append(wait_time) + + # Record the number of ships served + self.num_vessels_served += 1 + + # Record the time the ship leaves the port + departure_time = self.env.now + + # Record the total time the ship spent in the port + total_time_in_port = departure_time - arrival_time + + # Record the ship's data + self.queues.append( + ( + arrival_time, + unloading_start_time, + unloading_finish_time, + departure_time, + total_time_in_port, + ) + ) + + def generate_vessel(self): while True: # Generate ships at random intervals - yield self.env.timeout(random.randint(1, 5)) # Replace with actual interarrival time distribution + yield self.env.timeout( + random.randint(1, 5) + ) # Replace with actual interarrival time distribution # Create a new ship process - self.num_ships += 1 - self.env.process(self.handle_ship(self.num_ships)) + self.num_vessels += 1 + self.env.process(self.handle_vessel(self.num_vessels)) + + # def process_vessel(self, vessel): + # vessel_type = vessel.name.split("_")[0] + # if vessel_type not in self.vessel_types: + # raise ValueError(f"Invalid vessel type: {vessel_type}") + + # port_calls = self.annual_port_calls[vessel_type] / 12 + # anchorage_visits = self.annual_anchorage_visits[vessel_type] / 12 + # anchorage_delays = self.anchorage_delays[vessel_type] + # berth_occupancy = ( + # len(self.resources["Berth"]) / self.resources["Berth"].capacity + # ) + # anchorage_occupancy = ( + # len(self.resources["Anchorage"]) / self.resources["Anchorage"].capacity + # ) + # turnaround_time = self.calculate_turnaround_time( + # port_calls, + # anchorage_visits, + # anchorage_delays, + # berth_occupancy, + # anchorage_occupancy, + # ) + # self.turnaround_times[vessel_type].append(turnaround_time) + # self.berth_occupancies[vessel_type].append(berth_occupancy) + # self.anchorage_occupancies[vessel_type].append(anchorage_occupancy) + # yield self.env.timeout(timedelta(days=30)) def run(self, sim_time): - self.env.process(self.generate_ship()) + self.env.process(self.generate_vessel()) self.env.run(until=sim_time) # Calculate key performance indicators avg_wait_time = sum(self.wait_times) / len(self.wait_times) avg_service_time = sum(data[4] for data in self.queues) / len(self.queues) - avg_throughput = self.num_ships_served / sim_time + avg_throughput = self.num_vessels_served / sim_time + avg_turnaround_time = avg_wait_time + avg_service_time # Showing the port processes key performance indicators print("Average wait time: {:.2f}".format(avg_wait_time)) print("Average service time: {:.2f}".format(avg_service_time)) print("Average throughput: {:.2f}".format(avg_throughput)) print("Accessibility: {:.2f}%".format(self.accessibility * 100)) - - def process_vessel(self, vessel): - vessel_type = vessel.name.split('_')[0] - if vessel_type not in self.vessel_types: - raise ValueError(f'Invalid vessel type: {vessel_type}') - port_calls = self.annual_port_calls[vessel_type] / 12 - anchorage_visits = self.annual_anchorage_visits[vessel_type] / 12 - anchorage_delays = self.anchorage_delays[vessel_type] - berth_occupancy = len(self.resources['Berth']) / self.resources['Berth'].capacity - anchorage_occupancy = len(self.resources['Anchorage']) / self.resources['Anchorage'].capacity - turnaround_time = self.calculate_turnaround_time( - port_calls, anchorage_visits, anchorage_delays, berth_occupancy, anchorage_occupancy - ) - self.turnaround_times[vessel_type].append(turnaround_time) - self.berth_occupancies[vessel_type].append(berth_occupancy) - self.anchorage_occupancies[vessel_type].append(anchorage_occupancy) - yield self.env.timeout(timedelta(days=30)) - - def calculate_turnaround_time(self, port_calls, anchorage_visits, anchorage_delays, berth_occupancy, anchorage_occupancy): - # calculate the expected time a vessel spends in the port based on the input parameters - time_in_port = 2 # assume 2 days in port - time_at_anchorage = 1 # assume 1 day at anchorage - time_delayed_at_anchorage = time_at_anchorage * anchorage_delays - time_in_transit = 4 # assume 4 days in transit - total_time = (time_in_port + time_at_anchorage + time_delayed_at_anchorage + time_in_transit) - return total_time / port_calls + print("Turnaround time: {:.2f}".format(avg_turnaround_time)) def dredge(self): # Select a dredging strategy based on current accessibility - if self.accessibility <= 0.5: - - # Strategy 1: Rent a dredger to remove sediment and deepen the channel + if self.accessibility <= 0.2: + # Strategy 1: Rent a trailing suction hopper dredger to remove sediment and deepen the channel # (Reference: "Dredging: A Handbook for Engineers," 2nd Edition, by J. van den Herik and H. Voormolen, CRC Press, 2006) - # assigning problem parameters - x = 400 # loading rate (tons per hour) - f_p = 1000 # fuel price ($ per liter) - f_co = 10 # fuel consumption rate (liters per hour) - m_p = 200 # unit maintenance cost ($ per hour) - c_p = 400 # unit crew cost ($ per hour) - p = 13000 # engine power (kilowatts) + # Define parameters + x = 400 # loading rate (tons per hour) + f_p = 1000 # fuel price ($ per liter) + f_co = 10 # fuel consumption rate (liters per hour) + m_p = 200 # unit maintenance cost ($ per hour) + c_p = 400 # unit crew cost ($ per hour) + p = 20000 # engine power (kilowatts) d_l = 2000 # dredger length (meters) # defining different equations to calculate the dredger's cost dredger_speed = (p * 0.8) / (d_l * 0.5) dredging_speed = dredger_speed * (x / 60) - dredging_time = (1-self.accessibility) * self.num_ships * dredging_speed / dredger_speed + dredging_time = ( + (1 - self.accessibility) + * self.num_vessels + * dredging_speed + / dredger_speed + ) fuel_total_cost = (f_p * f_co) * dredging_time maintenance_total_cost = m_p * dredging_time crew_total_cost = c_p * dredging_time sediment_dredged = dredging_time * dredger_speed total_cost = fuel_total_cost + maintenance_total_cost + crew_total_cost - self.accessibility = min(1, self.accessibility + dredging_speed / (dredger_speed * dredging_time)) - print("Dredging strategy 1 selected. Accessibility: {:.2f}%. Amount of sediment dredged: {:.2f} cubic meters.".format( - self.accessibility * 100, sediment_dredged)) - print("dredger speed: {:.2f}".format(dredger_speed)) - print("dredging speed: {:.2f}".format(dredging_speed)) - print("dredgin time: {:.2f}".format(dredging_time)) - print("sediment dredged: {:.2f}".format(sediment_dredged)) - print("total cost: {:.2f}".format(total_cost)) - else: - - # Strategy 2: Deploy air bubble screen to reduce sediment accumulation + self.accessibility = min( + 1, self.accessibility + dredging_speed / (dredger_speed * dredging_time) + ) + print("* Trailing Suction Hopper Dredger selected.") + print("Accessibility: {:.2f}%".format(self.accessibility * 100)) + print("dredger speed: {:.2f} miles per hour".format(dredger_speed)) + print("dredging speed: {:.2f} miles per hour".format(dredging_speed)) + print("dredgin time: {:.2f} hours".format(dredging_time)) + print("sediment dredged: {:.2f} cubic meters".format(sediment_dredged)) + print("total cost: {:.2f} USD".format(total_cost)) + + if self.accessibility > 0.2 and self.accessibility <= 0.5: + # Strategy 2: Rent a water injection dredger to remove sediment and deepen the channel + + # Define parameters + total_volume = ( + 1000000 # Total volume of material to be dredged (cubic meters) + ) + dredger_volume = 50000 + dredging_rate = 5000 # Dredging rate of the water injection dredger (cubic meters per hour) + operating_time = 100 # Operating time of the dredger (hours) + hourly_rate = 10000 # Hourly rate of the dredger (USD per hour) + fuel_consumption_rate = ( + 200 # Fuel consumption rate of the dredger (liters per hour) + ) + fuel_price = 1.5 # Price of fuel (USD per liter) + emission_factor = ( + 2.68 # Emission factor for diesel engines (kg CO2 per liter of fuel) + ) + + # Calculate dredging time + dredging_time = total_volume / dredging_rate + + # Calculate fuel cost + fuel_cost = fuel_consumption_rate * fuel_price * operating_time + + # Calculate equipment cost + equipment_cost = hourly_rate * operating_time + + # Calculate total cost + total_cost = fuel_cost + equipment_cost + + # Calculate fuel consumption + fuel_consumption = fuel_consumption_rate * operating_time + + # Calculate emissions + emissions = fuel_consumption * emission_factor + self.accessibility = min( + 1, self.accessibility + (dredger_volume / total_volume) + ) + + # Print results + print("* Water Injection Dredger is selected.") + print(f"Dredging time: {dredging_time:.2f} hours") + print("Accessibility: {:.2f}%.".format(self.accessibility * 100)) + print(f"Fuel cost: {fuel_cost:.2f} USD") + print(f"Fuel consumption: {fuel_consumption:.2f} liters") + print(f"Emissions: {emissions:.2f} kg CO2") + print(f"Equipment cost: {equipment_cost:.2f} USD") + print(f"Total cost: {total_cost:.2f} USD") + + if self.accessibility > 0.5 and self.accessibility <= 0.8: + # Strategy 3: Deploy air bubble screen to reduce sediment accumulation # formulating the effectiveness of air bubble screen - # Input parameters - H = 5 # Depth of water (m) - U = 1 # Velocity of flow (m/s) - D = 0.01 # Diameter of bubbles (m) - L = 50 # Length of air bubble screen (m) - C0 = 200 # Initial sediment concentration (mg/L) - C1 = 150 # Sediment concentration after using air bubble screen (mg/L) + # Define parameters + H = 5 # Depth of water (m) + U = 1 # Velocity of flow (m/s) + D = 0.01 # Diameter of bubbles (m) + L = 50 # Length of air bubble screen (m) + C0 = 200 # Initial sediment concentration (mg/L) + C1 = 150 # Sediment concentration after using air bubble screen (mg/L) # Calculation of Reynolds number nu = 1.5 * 10**-6 # Kinematic viscosity of water (m^2/s) Re = U * D / nu # Calculation of settling velocity using Rouse equation - Ws = 0.038 * math.sqrt(Re) * D * (H/(H+L))**(5/4) # Settling velocity (m/s) + Ws = ( + 0.038 * math.sqrt(Re) * D * (H / (H + L)) ** (5 / 4) + ) # Settling velocity (m/s) # Calculation of sediment transport rate - Qt = 2/3 * math.pi * D**2 * Ws * C0 + Qt = 2 / 3 * math.pi * D**2 * Ws * C0 # Calculation of sediment reduction percentage after using air bubble screen Reduction_rate = (C0 - C1) / C0 @@ -189,7 +275,11 @@ def dredge(self): bubble_generator_cost = 1000 # cost per bubble generator air_compressor_cost = 5000 # cost per air compressor installation_cost = 10000 # estimated installation cost - total_capital_cost = bubble_generator_cost * num_generators + air_compressor_cost * num_compressors + installation_cost + total_capital_cost = ( + bubble_generator_cost * num_generators + + air_compressor_cost * num_compressors + + installation_cost + ) # Operating costs electricity_cost = 0.10 # cost per kWh @@ -197,8 +287,12 @@ def dredge(self): maintenance_cost = 0.02 # cost per dollar of equipment cost labor_cost = 20.0 # cost per hour of labor water_treatment_cost = 5000.0 # estimated cost per year - total_operating_cost = (electricity_cost * electricity_consumption + maintenance_cost * - total_capital_cost + labor_cost * num_operators + water_treatment_cost) + total_operating_cost = ( + electricity_cost * electricity_consumption + + maintenance_cost * total_capital_cost + + labor_cost * num_operators + + water_treatment_cost + ) # Environmental costs noise_barrier_cost = 20000.0 # estimated cost of noise barrier @@ -210,14 +304,82 @@ def dredge(self): total_insurance_cost = liability_insurance_cost # Opportunity costs - lost_revenue_cost = 50000.0 # estimated cost of lost revenue during implementation + lost_revenue_cost = ( + 50000.0 # estimated cost of lost revenue during implementation + ) total_opportunity_cost = lost_revenue_cost # Total cost - total_cost_air_bubble_screen = total_capital_cost + total_operating_cost + \ - total_environmental_cost + total_insurance_cost + total_opportunity_cost + total_cost_air_bubble_screen = ( + total_capital_cost + + total_operating_cost + + total_environmental_cost + + total_insurance_cost + + total_opportunity_cost + ) self.accessibility = min(1, self.accessibility + Reduction_rate) - print("Dredging strategy 2 selected. Accessibility: {:.2f}%.".format(self.accessibility * 100)) - print("total cost of air bubble screen: {:.2f}".format(total_cost_air_bubble_screen)) + print("* Air bubble screen is selected.") + print("Accessibility: {:.2f}%.".format(self.accessibility * 100)) + print( + "total cost of air bubble screen: {:.2f}".format( + total_cost_air_bubble_screen + ) + ) print("air bubble screen reduction rate: {:.2f}".format(Reduction_rate)) + + else: + # Strategy 3: Deploy current deflecting wall to reduce sediment intrusion + + # Define parameters + water_depth = 10 + current_speed = 2 + sediment_concentration = 0.01 + wall_angle = math.radians(1200) # angle of the current deflecting wall + wall_length = 30 # length of the current deflecting wall in meters + material_cost_per_square_meter = 100 # in USD + + # Calculate wall height based on wall angle + wall_height = wall_length * math.sin(wall_angle) + wall_area = wall_length * wall_height + + # Calculate sediment transport capacity + sediment_transport_capacity = ( + 0.033 * (sediment_concentration**1.5) * (water_depth**1.5) + ) + + # Calculate sediment transport rate + sediment_transport_rate = current_speed * sediment_transport_capacity + + # Calculate sediment deposition rate behind the wall + sediment_deposition_rate = ( + 0.033 + * (sediment_concentration**1.5) + * ((water_depth - wall_height) ** 1.5) + ) + + # Cost calculation based on wall material cost per square meter + total_material_cost = wall_area * material_cost_per_square_meter + + # Calculate wall efficiency as the ratio of sediment deposition rate to sediment transport rate + wall_efficiency = 0.9 + # wall_efficiency = sediment_deposition_rate / sediment_transport_rate + + # sediment_concentration_reduction = wall_efficiency * \ + # (current_speed ** 2) * (sediment_concentration / (1.65 * (water_depth ** (1/6)))) + + self.accessibility = min(1, self.accessibility + wall_efficiency) + + # Return wall efficiency + print("* Current deflecting wall is selected.") + print("Accessibility: {:.2f}%.".format(self.accessibility * 100)) + print( + "total cost of current deflecting wall: {:.2f}".format( + total_material_cost + ) + ) + # print( + # "current deflecting wall reduction rate: {:.2f}".format( + # sediment_concentration_reduction + # ) + # ) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index dc5ed385..525e69f6 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -10,7 +10,7 @@ from .resource import HasResource from .simpy_object import SimpyObject from .priority import Priority -from .Indicators import Port +from .indicators import Port __all__ = [ "basic", @@ -30,5 +30,5 @@ "HasResource", "SimpyObject", "Priority", - "Port" + "Port", ] From c32937d209ce7a3f3662117a4ab3f4e2737365bf Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 9 May 2023 10:34:47 +0200 Subject: [PATCH 056/100] update priority.py --- src/openclsim/core/priority.py | 46 ++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py index 56860d64..7b1b562e 100644 --- a/src/openclsim/core/priority.py +++ b/src/openclsim/core/priority.py @@ -1,24 +1,32 @@ -class Priority: - def __init__(self, priority, type): - self._priority = {} +import simpy +from .identifiable import Identifiable +from .simpy_object import SimpyObject - def add_priority(self, type, priority): - self._priority[type] = priority - def get_priority(self, type): - return self._priority[type] +class ResourceAllocation(SimpyObject): + def __init__(self, env, num_resources): + self.env = env + self.num_resources = num_resources + self.resource_pool = simpy.PriorityResource(env, num_resources) + self.location_claimed = False + self.location_claimed_by = -1 - def vessel(self, type): - if type == "dredging_vessel": - priority = 1 # dredging vessel has priority to claim soil - container = self.soil - elif type == "seagoing_vessel": - priority = 2 # seagoing vessel claims cargo container - container = self.cargo + +class VesselClaim(Identifiable): + def claim_location(self, name, priority): + yield self.resource_pool.request(priority=priority) + if not self.location_claimed: + self.location_claimed = True + self.location_claimed_by = name + print(f"Vessel {name} claimed the location with priority {priority}") else: - raise ValueError("Invalid vessel type.") + print( + f"Vessel {name} failed to claim the location with priority {priority}" + ) + yield self.env.timeout(1) # time it takes to claim location - with container.request(priority=self.priority.get_priority(type)) as request: - yield request - print(f"{type} claimed the {container.type} container.") - yield self.env.timeout(5 if type == "dredging_vessel" else 3) # process container + def release_location(self, name): + self.location_claimed = False + self.location_claimed_by = -1 + self.resource_pool.release() + print(f"Vessel {name} released the location") From b8c2bb605c52874c835fba6b3c03afceb3516394 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 9 May 2023 10:35:05 +0200 Subject: [PATCH 057/100] update __init__.py --- src/openclsim/core/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 525e69f6..8f8aec62 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -9,7 +9,8 @@ from .processor import LoadingFunction, Processor, UnloadingFunction from .resource import HasResource from .simpy_object import SimpyObject -from .priority import Priority +from .priority import ResourceAllocation +from .priority import VesselClaim from .indicators import Port __all__ = [ @@ -29,6 +30,7 @@ "UnloadingFunction", "HasResource", "SimpyObject", - "Priority", + "ResourceAllocation", + "VesselClaim", "Port", ] From d3222a7724f3169be79b703fbe65a304ebb9e2b2 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Fri, 12 May 2023 11:02:06 +0200 Subject: [PATCH 058/100] add notebook 37 --- notebooks/37_Claim_Berth_Interference.ipynb | 2237 +++++++++++++++++++ 1 file changed, 2237 insertions(+) create mode 100644 notebooks/37_Claim_Berth_Interference.ipynb diff --git a/notebooks/37_Claim_Berth_Interference.ipynb b/notebooks/37_Claim_Berth_Interference.ipynb new file mode 100644 index 00000000..8f253f73 --- /dev/null +++ b/notebooks/37_Claim_Berth_Interference.ipynb @@ -0,0 +1,2237 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "a20ee13c", + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx \n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime as dt\n", + "import time\n", + "import simpy\n", + "import openclsim\n", + "import opentnsim\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f6bbdaeb", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4fe0acc4", + "metadata": {}, + "outputs": [], + "source": [ + "Site = type('Site',\n", + " (openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.HasResource,), {})\n", + "\n", + "Waypoint = type('Way',\n", + " (openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.Locatable,), {})\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " openclsim.core.ContainerDependentMovable, # add opentnsim Movable to allow sailing on graph\n", + " openclsim.core.HasResource,\n", + " openclsim.core.HasContainer,\n", + " openclsim.core.Processor,\n", + " openclsim.core.Identifiable,\n", + " openclsim.core.Log,\n", + " openclsim.core.LoadingFunction,\n", + " openclsim.core.UnloadingFunction,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "73605cf2", + "metadata": {}, + "outputs": [], + "source": [ + "locations = []\n", + "\n", + "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore = {\"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"capacity\": 100,\n", + " \"level\": 0,\n", + " }\n", + "offshore = Site(**data_offshore)\n", + "\n", + "location_offshore_waypoint = shapely.geometry.Point(3.86736205092947,52.02761645094746)\n", + "data_offshore_waypoint = {\"env\": my_env,\n", + " \"name\": \"offshore_waypoint\",\n", + " \"geometry\": location_offshore_waypoint,\n", + " }\n", + "offshore_waypoint = Waypoint(**data_offshore_waypoint)\n", + "\n", + "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", + "data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 80,\n", + " \"nr_resources\": 1\n", + " }\n", + "berth = Site(**data_berth)\n", + "\n", + "location_dredging_waypoint = shapely.geometry.Point(4.051396629618069,52.02445392693116)\n", + "data_dredging_waypoint = {\"env\": my_env,\n", + " \"name\": \"dredging_waypoint\",\n", + " \"geometry\": location_dredging_waypoint,\n", + " }\n", + "dredging_waypoint = Waypoint(**data_dredging_waypoint)\n", + "\n", + "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", + "data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + " }\n", + "dump = Site(**data_dump) " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a3628d02", + "metadata": {}, + "outputs": [], + "source": [ + "path = [\n", + " [offshore, offshore_waypoint],\n", + " [offshore_waypoint, berth],\n", + " [dump, dredging_waypoint],\n", + " [dredging_waypoint, berth]]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "aa706fd2", + "metadata": {}, + "outputs": [], + "source": [ + "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", + "# based on the mixins, more attributes are defined for each location.\n", + "locations = []\n", + "locations.append(offshore)\n", + "locations.append(offshore_waypoint)\n", + "locations.append(berth)\n", + "locations.append(dredging_waypoint)\n", + "locations.append(dump)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "de44cbac", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of edges is 8\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABQYUlEQVR4nO3dd3hUVf7H8fedZEIyCSEhISICAgFpUqQKKsWCrrprAQEL2FDRVbH87IIIgmvD3ntZEV1YLKisSlNBqgIKSBEkCBgCCZAMIZPM/f1xDTCZ9Eyfz+t5eHzm3Dv3fodI7nfOOd9zDNM0TURERCRq2YIdgIiIiASXkgEREZEop2RAREQkyikZEBERiXJKBkRERKKckgEREZEop2RAREQkyikZEBERiXJKBkRERKKckgEREZEop2RAREQkyikZEBERiXKxwQ5AREQkHJimidsEt2niNk1shvHXHzAMI9jh1YmSARERkTJM0yTfVUJeoYvcQhe5hUXkFRZTUs5GvzGGQUp8LKnxcaTG20mJt5NkjwmrBMHQFsYiIiKW/KJiNuc52bLXicttPR4NoDoPyiPPs9sMWjRw0DLFQVJc6H/vVjIgIiJRzTRNdhYcZFNuAdnOomo//KtSep0MRxyZqYk0TqwXsr0FSgZERCRq5TiLWL4zjwJXic+SgLJKr5toj6F74xTSHXF+uEvdKBkQEZGoU+w2WZOzn425BQG7Z2lS0Do1kQ7p9Ym1hU4vgZIBERGJKjnOIpbtyMNZXBK0GBz2GHqEUC+BkgEREYkam3ILWJm9L9hhHNIlI5nM1MRgh6FkQEREIp9pmqzbnc/a3fnBDsVLh/Qk2jZMCurkQq1AKCIiES9UEwGANTn5/LonuLEpGRARkYi2MbcgZBOBUmty8tkUwMmMZSkZEBGRiJXjLGJVCM0RqMzK7H3kOIuCcm8lAyIiEpGK3SbLduQFO4xqM4BlO/Iodgd+Kp+SARERiUhrcvYHtXywpkzAWVzCmpz9Ab+3kgEREYk4Oc6igC4o5EsbcwsCPlygZEBERCKKaZos25kX7DBqzQCW78wjkJX/SgZERCSi7Cw4iNMVPsMDZZlAgauEnQUHA3bPiEkGTNOkxG3iKnFzsLgEV4mbErcZ0MxKRESCb1NuAaGz6n/tGBDQUsPQ32S5HKZpku8qIa/QRW6hi9zCIvIKiykp58EfYxikxMeSGh9HarydlHg7SfaYkN1GUkREai+/qJjsIJXn+ZIJZDuLyC8qJinO/4/qsEoG8ouK2ZznZMteJ66/Si+q2nKyxDTZfcDFngOuQ+fZbQYtGjhomeIIyF+yiIgExuY8p9+2Ig40A+vzdMpI9v+9Qn1vAtM02VlwkE25BWQ7i3z2Qy69ToYjjszURBon1lNvgYhIGDNNk882/nnoy2IksNsMzm19lN+fTyH9tTjHWcTynXkUuEoOjf/46kdcep1dziKynUUk2mPoHkLbSYqISM3ku0oiKhEAcLmtYfH6fu7FDskJhMVuk1XZ+1iQtZuCv2aE+uvHW3pdp6uEBVm7WZW9LyirP4mISN3kFbqCHYJfBOJzhVzPQI6ziGU78gK+alTp439jbgHb8wvpoV4CEZGwklvoipj5AqUMrGSgWXKCX+8TUj0Dm3ILWJC1O+jLR5b2EgRzBykREamZ3MKiWiUCRQcLGdyuCYPbNfF5THVlAnsK/V8dERI9A6ZphuRe0yuz9+Fyu2nbMEmTC0VEQphpmuQVFgc7DL/IKyzGNE2/PodComcgFBOBUmty8vl1T2jGJiIiFrdJuWvNVGTOjGlc0787V5zYkc/eevVQ+8+LFzK4XRPuHnYuANnbshjcrgmjT+116H2D2zVh/BVDmXDVcC7t1prJo0eyZtlibvn7QC7t1oYXx/7foeuNPrUXg9s14f2nHuH603pzZd9OfPTCkzX6bCWm6fehj6AnAxtzC0I2ESi1JidfQwYiIiHMXYNEIGvjel4c+38UOgsYeuPtbPx5ZY3vt3b5YrqeMpCjj23J8nlf88g/r+Ksiy8nMTmZrz96n58XL/Q4/9cfl3HBtTcRFx/PB888xrK5X9XofiV+ntge1GQgx1nEqux9wQyh2lZm7wv4LlIiIlI9NUkGVi/6FndJCSf97R+cfdlVXDN2Uo3v17FXX/5x5XWc0O80APqceQ5nXXIFHXv1BWDn1s0e519+51gGDbuMc0aMAuDHb+fW6H41+Xy1EbRkoNhtsmxHXrBuX2MGsGxHnsoORURCkM1H4+kxsTEAuIut+Qf5e3PLPS+pQQMAYmOtqXeJf7222az3l5T4diK8rz5fRYI2gXBNzv6gVw3UhAk4i0tYk7OfzgFYGlJERKqvJg/Lzn37YYuJ4fsvPqH5ce08uvQzmjbHZrORtWk9382aybyP/+OT+N5+dCInnX0es959DYATThlYo/fH2PybDASlZyDHWcTGMB2D35hboOECEZEQYzOsjemqo2lmG66f+DjxjkSmv/wMzVofd+hY2lFHc/GYu4irF8+7jz9Ei7YdfBJfhx69+e8rz1JUWMjwm++gx8Azqv3eGMPw+y6MAd+bwDRNZm/eFbZ7TRuAwx7DoJaNVG4oIhJC5m/NYfeB0FqFcPSpvdi1fRsvfr2YjKbNanWNtAQ7/Zun+zgyTwHvGdhZcDBsEwGwhgsKXCXsLDgY7FBEROQIqfFxfv8GHWgG0DDe/6vhBnzOwKbcgrBfLtLA+hxHJ8UHOxQREflLarw95J4tL81ZUqf3m0BKvN03wVQioD0D+UXFZDtrt1xkKDGBbGcR+UWRudqViEg4CsRDMxgiLhnYnOeMmC4cA+vziIhIaEiyx2D386z7QLPbDJLsMX6/T8CSAdM02bLXGfa9AqVMsD5PYOdfiohIBQzDoEUDR0R96WzRwBGQyeoBSwbyXSW4ImzBHpfbJD+MJ0OKiESalimOiPrS2TLFEZB7BSwZyCsMrXIPX4nUzyUiEo6S4mLJcIR/VYEBZDjiSIoLzDz/gCUDuYWuKn84bz48nst7d2BwuyZMuW10hW0VKd0dKntblo+irpyBkgERkVCTmZoY9r0DJtbnCJSAlRbmFlZeRbB3dw6fvf0K8Q4HNz78FE1atCq3LVBM08Q0TWy2ivMlE9hTqNUIRURCSePEeiTaYygI02Hc0sXtGifWC9g9A5IMmKZJXqFVhvfz4oW8/9S/2Lp+HfUcDrqeNICzLrmcu4eeA0Ch08lz99zCgPOHMm/mhx5tQ/95GzGxsbw64V6yNv6KaZpkNG3OqPsfotOJJx+637yZHzL/k+nsz8vl3JGjGHrj7QBsWfcL7zz2EBtX/0RMTAztuvfi8jvH0bh5C+bMmMbz995Kl5P6g2mydsUSnv5sPhgG7zw2kTVLF+EqKqJt1+5ccfd4mma2ASCvsBjTNLUaoYhIiDAMg+6NU1iQtTvYodSKCfRonBLQ50pAkgG3CSWmyc6s35l03WXYbDFcfMtdZG34la8/+je7tm/j6vsm8vqksSSnNuTq+x+iaWYbMjt28mhr3qYd7z/9CBtX/8Tld47DUb8+WRvXU+zyrPdftehbzhk5incff4gPn59C//MvIim5ARNHXcK+3D0Mu+n/OOh0MuOVZ9m2aQNPfjLn8HsXLuC8UTfQe9DZJCQmMu7yi/gzawt/u/RK6sUnMOvdN5h07WU888W32OPiKDFNTAj78SkRkUiS7oijdWpiWO6D0zo1kTSH/1cdPFKAkgFrgOCnb+dSVFjI6RddyrkjR+F2u1n45af8smQhV9z9AAD1EhycfM75ADiSknl90liPtqat2rD0m9ksm/c1mcd3pl23XnTuc7LH/a64ezytO3Xlu1kz+fXHZezcuoVil4u8nF106duPIaPHALBs7lds3bCOrRvWHXrv8b1PYsTt9wGwbdMGtq5fC8DM1144dE7+3lyyNv5Kqw6dAChxm9hilA6IiISSDun12b6/MGx2yDWABHsMHdLrB/zeAU0GfOHS2+7h+N59Wb9yBeuWL+GTN17i3Muv5cp7xh86Jzk1DYDYWGvVJndF+0qX0wWT1riJV1t6k2O44aEnDr023W4yjjm84YQvP5+IiPhGrM2gx9HhM1xQOjwQG4SFkwKSDJTuM931lIHUS0jg+88/pnmbtmRtXI9z/z6O730SSckp1brWRy88iS0mhoxjmlHoLGDlwgXk7Pijyve1O6EHKemN+HnJQma8/CyFB5xsXb+WJi0zad6mHVvWrfF6z9EtWtG8TTu2bljH4q++oHWnrmRv28qCT2fwwleLvD6fiIiElnRHHF0yklmZvS/YoVSpS0Yy6QEeHigV0GSgcbNjufeld3n/qX/x/lOPEO9wMOC8ixh551gOHjhQrWvFxtr5+j/vs+fPncTa7XTs1ZeLx9xZ5fsSkxsw9rX3eefRicx8/QVsNhs9TzuTK+56gFh7+es+x8TEcM9L7/DeE5NY/NXnzJ0xjYaNj6Zzn1M8z4uw5S9FRCJJZmoiRatXs/aoY4MdSoU6pCcFtJSwLMMMwHq6pmnyyYY/KYnA7vQYw+AfbY5SNYGISCjaswduvBFz6lR+HT2GNbfcFeyIvHRIT6Jtw6SgPkcCsuiQYRikxAd8t+SASImPVSIgIhKKZs2C44+HqVMxgHYvPU2Xh+4HtxujOLi7zpY+NbpkJNMurX7QnyMBW4EwNT78l4csywAaxgdnfEdERCqwdy9cfTWcey7s2OFxKPO9N+h32YUk7NwOFU0uD4AEewz9mqUFdWjgSAFMBuxhvzxkWSaRu3+2iEhY+vpr6NQJ3nijwlPSVyzh9HMH0vrd1wPaS1D6hbh1aiKnt2gUtMmC5QlYMhCpD81I/VwiImGloAD++U844wzIqnp/mtjCA3T+13j6XXYhju3bAPyWFJQmAY6/egM6ZyQHpXywMgGZQAjWJMLPNv4ZUdsY220G57bW5EERkaD67ju44grYtKlWbzdtNnb2O5VNl15J9kn9MdxuzNi6z3MzsHqQMxxxZKYm0jixXsg+LwKWDACszt7HxtyCiBguMLC6ejplJAc7FBGR6FRcDHffDVOmgI8eZfnNjmXzsBFsGXopruQGwOGHelWOPM9uM2jRwEHLFEfAtiGui4AmA/lFxfxv865A3c7vBrVsFBY/ZBGRiHTXXfDoo365tGkY5M9bQF7X7uQVuthTWEReYXG5JfIxf1XMNYyPIyXeTkq8nSR7TMj2ApQnoE+ypLhYMhxx7HJWvp1xqDPcbhq5CknCHexQRESi19df++3ShmlS3xFP/eQEmiUnAH9tbY+1H43bNLEZBjE2AwPC6sFfnoBNICyVmZoY1okAWONLmWNGQ2oqDBoEDz8MixaByxXs0EREosfZZ/v3+klJHi8Nw8BmGNhjbNSLjcEeY8NmGGGfCECAhwnAyqz+t3kXBa7w2EWqLKO4GMf2bQw662QMd5megaQkOPlkGDjQ+nPCCeCDSSgiIlIOtxueeAImToT9+31//awsaNrU99cNQQFPBgBynEVhs4uUF7eb/pdeQNqPS6s+NzkZTjnFSgzOPx8yM/0enohI1MnOhvHj4eWXrQTBV/LyoEED310vhAUlGQBY9VdlQVhxl9D6ndfo/K8Ha/7emBiYOhUuusj3cYmICPzyC9xxB3zxhW+u53JFTe9uwOcMlOqQXh9HbEywbl9jRnExjj+20eGpWs5cLSmBp5/2bVAiInJYx47w+efw5ZfWngR1ER8fNYkABDEZiLUZ9Dg6JVi3rzHTZqPHXWOILazeVsvlatHCZ/GIiEgFzjwTfvwRXnih9tcoM3kw0gUtGQBId8TRJUwW7ekyeRzpK5bU/gKNG8Pkyb4LSEREKhYbayUEtVW/vu9iCQNBTQbAKjVsnxbaGViHpx4h872KN72oksMBn30GzZv7LigREalYdja8/rpnm60Gjzz1DAReu7QkOqSH5l98hyf/RduX6jDWbxjw/vvQvbvvghIRkcoNH+5dWTBuHCxeDCedVPX7lQwEnmEYtEurf2jIINjLNxjFxeB20+Wh+2n38jN1i+fJJ+G883wVmoiIVGXFCpg717OtYUMYOxZ69YJvv4WPPoKWLSu+hoYJgiczNZF+zdJICGaVgdtNwo4/6HfZhXUbGgC46SYYM8Y3cYmISPUMH+7d9sorh4cJDAOGDIG1a+Hxx8tfS6BRI//GGGKCts5AZYrdJmty9rMxt6Dau0XVVel9Wh/YS4c+3epWNQBw7rkwc6a1voCIiATGtGneyUDbtrBuXcXvycmBBx+EF1+0ysBjY621Ck4/3b+xhpCQTAZK5TiLWL4zjwJXid+SgtLrJtpj6N44hfQEO3TrBj/9VPuLtm0Ly5ZF3ZiTiEhQud2Qng65uZ7tK1dC585Vv3/zZpg3D3r0gE6d/BJiqArpZACsvQx2FhxkU24B2c4inyUFpdfJcMSRmZpI48R6hzebeO01uOaa2l/cZrNWGxw61AeRiohItYwbZ+1TcKTTTvPr7oaRIuSTgSPlFxWzOc/Jlr1OXG4r7OomB0eeZ7cZtGjgoGWKg6S4claYcjqhSRPYu7duAU+cCPffX7driIhI1ZxOSEnx3D02Jgb+/BPS0oIWVrgIq7UWk+Ji6ZSRzPGN6pPvKiGv0EVeoYs9hUXkFRZTUk5eE2MYpMTH0jA+jpR4OynxdpLsMZVvOelwwJVXwlNP1S3gsWOtCSr//nfdriMiIpW7/HLvbeSvuUaJQDWFVc9AZUzTxARK3CZu08RmGMTYDAyo3V7TGzbAccdV//wHH7RmpZa3jWbPnrBwYVStcy0iEjBbtkCrVnDk48zhsHp39Xu3WkKqtLAuDMPAZhjYY2zUi43BHmPDZhi1SwQA2rSBQYOqd+4dd1hjVVu3wrHHeh9futTal2DPntrFIiIiFbvoIs9EAOCRR5QI1EDE9Az4xSefVL1g0JAhVilLaf1qcTEMGADff+99bmKitfpVx44+D1VEJCrNmWNNEjxSkybwxx/BiSdMRUzPgF+cc0753/RL9e4N77zjud51bCx8950156CsggLo2tXap0BEROpu5EjvtnfeCXwcYU7JQGViYmD06PKPtWxp9RwkJJR//I03rG6qsoqL4R//gClTfBeniEg0euEF7x6A7t29ewqkShomqMquXdC0KRQVHW5LSbEmBLZvX/X7P/kELrzQWtWqrFGj4NVXfRaqiEjUKC62fhcXFBxuMwzYtKnyPQekXOoZqEqjRnDddYdf2+0wY0b1EgGwegFWrLDmC5T12mvQv7/3zloiIlK5MWM8EwGwvngpEagV9QxUR2GhtebAb79Zdas9e9b8Gjk51nKYO3Z4H2vRwlouMzm5rpGKiES+PXsgI8Ozx9Vuh7w8q6RQakzJQCAVFUHfvrB8ufexBg2s9szMwMclIhJOBg2Cr77ybLv3Xpg0KTjxRAAlA8EwfLhVjliW3W7tlKXJLyIi5Vu92nvToZQU2L3bs7JLakR/c8HwwQfwwAPe7S4XnHEGvPxy4GMSEQkH5W0A9/zzSgTqSD0DwTRtGlxySfkTCG+5BZ58MuAhiYiErBkzYPBgz7bWra3l46VOlAwE29Kl0K+fNUmxrDPPhM8/V8YrImKaVnXX7t2e7cuWWWsLSJ3oKRNsPXtadbHp6d7HZs+GDh2srTlFRKLZQw95JwL9+ysR8BH1DISKwkLrf+o1a7yPNWwIP/4IzZsHPi4RkWArLLQqro5c/M1ms0q1MzKCF1cEUc9AqIiPt2bJnnuu97E9e6ztlBctCnxcIiLBdtVVnokAWPu/KBHwGfUMhKI77oDHH/dut9ng7bfhsssCH5OISDBkZVkbxh35qEpIgH37tEWxD6lnIBQ99pi1VLFheLa73TBiBNx3X3DiEhEJtKFDPRMBsOYPKBHwKfUMhLIFC6x1B8p2jwFccIFVZiMiEqm++w5OOcWzrXHj8pd1lzpRMhDqNm+Gbt2sNbfL6tzZKk2Miwt4WCIifnfssbB1q2fbF1/AWWcFJ54IpmGCUNeypTVm1rq197FVq6wKg507Ax+XiIg/vfqqdyLQpYsSAT9Rz0C4cLutzTm++cb7WEKC1Z3WrVvg4xIR8TW32yolzM8/3GYY8Ouv0KZN8OKKYOoZCBc2G3z9Ndxwg/exAwegVy+YPj3wcYmI+Nptt3kmAgB//7sSAT9Sz0A4evZZGDPGe4YtWLNsVW0gIuEqL89adri4+HCb3W6tPli/ftDCinTqGQhHN91kTaKx272P3X+/1iEQkfB16aWeiQBYG7cpEfAr9QyEs19/tfY22L/f+1ivXvD996rFFZHwsWYNdOzo2ZacDLm52rDNz/S3G87atrVm2zZr5n1syRKrEmHPnsDHJSJSG0OHerc984wSgQDQ33C4S0mB336Dvn29j23bZtXplrf5kYhIKPn0U/jlF8+2li3h8suDE0+UUTIQCWJjrSGB8v7R5Odbtbmffx74uEREquvqq73bpk4NfBxRSslAJHnrLXjkEe/24mJrN8Snnw54SCIiVXr4Ydi1y7PtpJOgd+/gxBOFNIEwEn38MQweDCUl3seuuw5eeinwMYmIlKeoyFpgqLDwcJvNZg1zHn108OKKMuoZiETnnQcrVoDD4X3s5ZdhwABrhS8RkWC75hrPRACs8mglAgGlnoFIlp1tzRcob++CVq3gxx+tsh0RkWDYvt2qhjryy0l8POzdqw3YAkw9A5EsIwN+/x1OOMH72G+/WZscbdoU+LhERMAqJSzbSzl+vBKBIFDPQLQYOhQ++si7PS4OvvwSBg4MfEwiEr0WL4YTT/Rsa9TI6tGUgFPPQLT48EMYO9a7vagITjvN2i5URCRQLr7Yu+311wMfhwBKBqLLhAnw3nveq3mZJlx7rbVTmIiIv739Nmze7Nl2/PHWzoQSFBomiEaLF1sVBWVn8AL87W/w2Wda/lNE/MPthtRU2LfPs33NGmjfPjgxiXoGolLv3rBhA6Snex/74gtroxCnM/BxiUjku+su70Tg7LOVCASZegaiWWEhdOsGa9d6H0tLg59+gqZNAx6WiESo/fuhYUPPLYpjY63VB1NSghaWqGcgusXHw88/wznneB/bvRvatLGGFEREfOGyyzwTAYAbb1QiEALUMyCWO+6Axx/3brfZrMk+l10W+JhEJHKsX29tu36kpCRrgSHNUQo6/QTE8thjVnmhYXi2u90wYkT5ZYkiItU1dKh325NPKhEIEeoZEE/z58OgQdb6A2UNHgz/+U/gYxKR8Pbll1al0pGaN7dWSJWQoGRAvG3ebE0szMvzPta1qzWPQMuFikh1HX209x4p334LJ58cnHjEi/pnxFvLlpCVZW1mVNZPP8Gxx2rJUBGpniee8E4ETjxRiUCIUc+AVMzthtNPh7lzvY85HPD991ZPgYhIeVwuaNAADhw43GYY1vBAs2bBi0u8qGdAKmazwZw5MHq09zGnE3r0gP/+N/BxiUh4uP56z0QArD0JlAiEHPUMSPU8+yyMGWPtY1DW5Mlwzz2Bj0lEQld2tjVX4MgtiuvVs+YixccHLSwpn3oGpHpuugk+/9xaLayse++Fyy8PfEwiErqGDvVMBADuu0+JQIhSz4DUzNq11t4G+/d7HzvxRGuGcHkJg4hEj+XLrWHEI6WlWcsOl13LREKCegakZtq3h61byx/z++EHqwJhz57AxyUioWP4cO+2V15RIhDClAxIzaWkwG+/QZ8+3seysqzSw/I2PxKRyPf++7Bxo2dbu3Zw4YXBiUeqRcMEUjcjR8K773q3x8bCJ594rzomIpHL7baGA8ouWLZ6NRx/fFBCkupRz4DUzTvvwMMPe7cXF1u7IT7zTOBjEpHgGDvWOxEYNEiJQBhQz4D4xn//CxddBCUl3sdGj4YXXwx8TCISOAUFkJpqLTRUKibGKjFs2DB4cUm1qGdAfOOCC2DZMmtlwrJeeglOPdW7zEhEIsfll3smAgDXXadEIEyoZ0B8KzsbunTxXoscIDPT2tsgKSngYYmIH/32G7Ru7bkoWWKiNWSgUuOwoJ4B8a2MDGvd8fL2LNi0ySpJ3Lw54GGJiB9ddJH36qSPPqpEIIyoZ0D8Z8gQmD7duz0uDmbPhgEDAh6SiPjYN99YG5odqWlTq8xYwoZ6BsR//vMfuP9+7/aiImsOwWuvBT4mEfGtkSO92955J/BxSJ0oGRD/mjgR3nvP2gHxSKYJ11wDt98enLhEpO6efRa2b/ds69EDBg4MTjxSaxomkMBYvNgaFigs9D529tnw6afeCYOIhK7iYmjQwNrOvJRhWHOCjj02eHFJrei3rwRG796wYYO1OllZn39uLUpSXqIgIqHppps8EwGw5gkpEQhL6hmQwHI6oXt3WLfO+1h6Ovz4ozX5SERCV04ONG7suchYXBzk5pa/1oiEPPUMSGA5HPDLL+XvWZCTA23aWEMKIhK6hg/3Xm30rruUCIQx9QxI8Nx2Gzz5pHe7zWZNOrz44sDHJCKVW7nSex2R1FQrmde8n7Cln5wEz5Qp8PLL3nucu91wySUwblxw4hKRig0b5t324otKBMKcegYk+ObNgzPPtNYfKGvIEPjoo4CHJCLl+OgjGDrUs61NG1i/PjjxiM8oGZDQsGmTNbFw717vYyecAD/8YE1QEpHgcLuhUSPYs8ezffly6NYtODGJz6hfR0JDZiZs2watWnkf+/FHq1wpOzvwcYmIZcIE70Rg4EAlAhFCPQMSWtxuOO00a+igLIcDFi2Czp0DHpZIVDtwAFJSPIfybDZrd9JGjYIWlviOegYktNhsMHeutQ96WU6n9S1k5syAhyUS1a680ntOz9VXKxGIIOoZkND11FNW+WF5/4v+619WXbOI+Nfvv0PLlp7/DhMSYN8+bVEcQdQzIKHrlltg1qzyf+Hcfbf1bUVE/GvoUO+EfPJkJQIRRj0DEvrWroVevSA/3/tYnz6wYIF+MYn4w4IF0L+/Z9vRR3vvVChhT8mAhIc9e6BLF6vioKxmzWDVKmuCk4j4TvPmkJXl2fa//8EZZwQnHvEbDRNIeGjY0NoatXdv72NZWdYvrV9/DXxcIpHqlVe8E4GuXZUIRCj1DEj4GTkS3n3Xuz02Fj77zFrNUERqz+2GBg08h+YMw9qGPDMzeHGJ36hnQMLPO+9YE5jKKi62dkN87rnAxyQSSW691XuOznnnKRGIYOoZkPA1fbq1aUrZrVQBrr8eXngh8DGJhLvcXGv9gCP/Xdnt1rydpKTgxSV+pZ4BCV+DB8OSJVbNc1kvvmitZOh2Bz4ukXB2ySXeCfZttykRiHDqGZDw9+efVqXBn396H8vMhJ9+0i8yker45Rc4/njPtgYNrF4BbVEc0fTTlfB31FGwdauVEJS1aZNVerhlS8DDEgk7ZbcnBmsOjhKBiKefsESGuDirB+DCC72P5eVB27bWAioiUr6PP4Y1azzbWrWCyy4LTjwSUEoGJLJMnw733uvdXlQEAwbA66/X/toHDlhzFPLyan8NkVA1apR32wcfBD4OCQolAxJ5Jk2y1iEo27VpmtYvvDvuqPk1s7KsHRN797aGHVas8E2sIr528CDcfLP1/+r991cveZ08GXJyPNtOOQV69vRLiBJ6NIFQIteiRTBwoPXLsaxzz7W6RaszFrpvH5x8Mqxefbitf3+YN89noYr4zKRJVhJQKj0dxo+Ha6+1SgTLOnjQmiR45L8Tmw3++AMaN/Z7uBIa1DMgkatPH1i/3lrKuKzPPoNOnaCwsPJrFBdbk6qOTAQA5s+Hn3/2XawivvLDD56vc3Lgxhuhc2drF9Cy3/9GjfJOmEeOVCIQZZQMSGQr3WilXTvvY2vWWMcr2oHNNK1forNnl39cixpJKCpvd0+AdeusHrEzzoCVK622P/6Af//b87z4eHj5Zf/GKCFHyYBEPofDqp8+6yzvY7t2WWsRLF3qfezxxyv/pfjuu9YQgkgo2b+/8uPffAMnnGD1CJx/vndPwYMPWtU5ElU0Z0Ciy623wlNPebfbbPDee3Dxxdbr//wHLrqo6us9+6zVeyASKtq1q/0OnhkZ5S/eJRFPyYBEn1degdGjvb8RATzwgNWDMHBg1fMJANq3t3odDMP3cYrURtOmVvd/bXz6qTWUIFFHyYBEpzlzrIe+y+V9rF698isQKrvWwIG+i02kLho0qP3wVffuMGUK9Ovn25gk5GnOgESnU0+FtWutX5xl1SQRAHj++VqHYZomJW4TV4mbg8UluErclLhNlKNLrZhmxRMIq2P5cqts9sILYeNG38UlIU89AxLd9u2Drl1h8+baXyMmxtr7oGnTSk8zTZN8Vwl5hS5yC13kFhaRV1hMSTn/BGMMg5T4WFLj40iNt5MSbyfJHoOh4QipzIED1oRZX7DbrfkwY8dCaqpvrikhS8mASEkJNGkC2dm1v8bYsTBhQrmH8ouK2ZznZMteJy639c/NAKrzD+/I8+w2gxYNHLRMcZAUF1v7WCVy7dplTQL0pYYNYdw4uP56VRlEMCUDIhMmWBMH66J058S/flmapsnOgoNsyi0g21lU7Yd/VUqvk+GIIzM1kcaJ9dRbIIf99ptVKusPbdtaixb56/oSVEoGJLq99x6MGOGba02dCsOHk+MsYvnOPApcJT5LAsoqvW6iPYbujVNId+gbmwCrVpW/lbevnHuuVXEgEUcTCCV6zZ8PV13ls8sVv/oqq7L3sSBrNwWuEsA/icCR13W6SliQtZtV2fsodiuvj3p1mTxYHXv3+vf6EjQaeJTo9OuvcMEF5ZcW1kJOt14su3cyzj35AV1zoPTxvzG3gO35hfRQL0HEMk0Ttwlu08RtmtgM468/HB4qqmr1wbqIi7PmDkhEUjIg0WfXLjj7bMjN9cnlNl12FSvvnQCmO6iLD5X2EnTJSCYzNTFocUjd1bryJCaelJaZJG35DcOXI8DdusHbb8Pxx/vumhJSNGdAosuBA3Daadb2xnVkAuuuv4W1Y+6se1w+1iE9ibYNkzS5MMz4rPJk315afPQ+LT94h6Ss32sfUGysVSlzzz3lb38sEUPJgESXm2+29hPwgbUhmgiU6pCeRLu0+sEOQ6rgt8qT4mLM2FgyvptH5r/fpPH8bzDc7upf4Pjjrd6Abt18EI2EOiUDEl0aN/bJRiwbR1zNqvsm+iAg/9KQQWgLSOXJX0lB4tYtdL/7FtJXLKn8DTYb3HknjB9vLc0tUUHJgESXs8+GL76o0yVyuvViwXszrF+aYaBfszRNKgwxxW6TNTn72ZhbELB7GsXFmDYbrd95jQ5PPUJs4QHvk447zuoNOPHEgMUloUHJgESX7GxrkaGPP4Zt22r89uL4BL7+bC7Oo5tATOjPvzWAhNgYTm/ZiFib5g+EghxnEct25OEsLglOACUlOLZvo8ddYzx7CW65BSZN8t1yxhJWlAxIdDJNa7W2uXMP/9mxo8q3rbp7PBtHXG3tRxBGWqcm0jkjOdhhRL1NuQWszK7ljoK+VFIMho0uk8eR+f1cePNNa4MiiVpKBkTASg42bDicGMyb5zW3IKd7Lxa8Gz7DA2VpuCB4TNNk3e581u7286JAtdChfhxtj26oypMop2RApDymCevWHUoOzAULmP3eTJzHNA2L4YGyDMBhj2FQy0b6pR8Ea3P2h2QiUEqVJ6JkQKQaduw7wKIdecEOo876HJPK0UnxwQ4jqmzMLWBVKAwNVEGVJ9EtPPs7RQJs014n4f592sAas5bAyXEWhUUiALAyex85zqJghyFBomRApAr5RcVkO4v8tulQoJhAtrOI/KLiYIcSFYrdJsvCqDfJAJbtyNOGV1FKyYBIFTbnhX+vQCkD6/OI/63J2R+88sFaMAFncQlrcvy42ZGELCUDIpUwTZMte51h3ytQygTr82iqkF/lOIsCuqCQL23MLdBwQRRSMiBSiXxXyaENYyKFy23tiCf+YZomy3bmBTuMWjOA5TvzlDBGGSUDIpXIK3QFOwS/iNTPFQp2FhzEGcbJlgkUuErYWXAw2KFIACkZkIhw22230bChtXDK8OHDK2yrSIsWLTAMgy1btni05xa6Ima+QCmD2icDV1xxBYZh8NZbb1Xr/Lfeeovx48d7/b1Gsk25BWH//4wqT6JP+K2eIlJGdnY2Tz75JImJibz11lscd9xx5bbVRm5hzasITNPENE1sIbpSoQnsKazdmPD111/PWWedRe/evat1/ltvvcX8+fMZMGAALVq0qNU9w0lp5Um4O7LyJClOj4loEJq/rUTKMW/ePE466SSSk5M5+uijueKKK1iyZAlHHXUUAAUFBVxxxRW8/PLLXm2zZ89m6dKl9OrVi8TERBwOBx07dmTOnDke93j77bdp3bo1qampjB8/nrxCqwxvy7pfmHD1xYzs1Z4r+xzPIzdexc6tWwCYM2Mag9s1YcLVFzPhquFcckImOdv/IPuPbTx+y3VcdVJnRvRsx0PXXMq2TRsq/Hx7/tzJ4HZNuGfY3wH4/L03GNyuCZ+88RIA40YMZnC7JuzM+p11K5Yw5twBXHJCJpeckMnt55/O0jmzcbvd/PPMkxjeuSV79+wGYOmc2Qxu14QXx/4f2duyGNyuCYN7d+HGG2+kUaNGtG7dmlmzZh2KY/r06XTr1o3ExESaN2/OLbfcQn6+tXreiy++yMUXX8z8+fOBwz0q9957L61atSI1NZUHH3wQgAEDBhw6b+DAgeX2vEQaVZ5IuFIyIGHht99+4+yzz2bVqlVMnDiRv//977z99tvcddddPPPMMwCkp6czdepUbr31Vq+2IUOGMGnSJJYuXcqECRN45plnGDRoEC6XZ3f5119/zS233MLBgweZMGEC27N+p2DfXiaOuoTVP3zHP64azekXXcqSr79k0nUjKD7i/asWLqBlx05ccfd4EhITefj6y1kx/2sGXjCUv19+DRtW/cSkay/DVVT+N8eGRzWmaevj+G3NKg4ecPLLkkUA/LxkIUUHC1m/cgUZTZvTuNmxxMUnMPD8i7jqvokMuf4W9uXm8uTtN3Agfz9/v+JaXEUH+frDfwMw/5MZAAwaNvLQvXbv3I7L5eLOO+8kKyuLYcOGsXPnTr7//nuGDh3Kjh07eOKJJ+jRowdPP/00N998c6U/n2+//ZbbbruNgwcP8uCDD7J582bGjRtH+/btARg7dixTp06lUaNG1f6ZhxtVnkg4U/+PhIUvv/ySAwcOcM011zBmzBjcbjcffvgh8+bNY8qUKQAkJiYemhvQoEEDbr75Zo+29u3b8/HHH/PZZ5/Ro0cPTj75ZE477TSP+0yZMoWePXsydepUFi5cyM6tWyh2ucjL2UWXvv0YMnoMAMvmfsXWDevYumHdofce3/skRtx+HwDbNm1g6/q1AMx87YVD5+TvzSVr46+06tCp3M/ZpW8/tm1cz7oVS1mz7Ad6nnYma5b+wNrlS3AVHaRzn1MAKCosZP7H08na+KvHL+s/Nm9i4AVDmfbMY/xv2jsMGj6C5XO/onWnrmQe35nsbVkAOOon88xzz1PPHsu3337Lp59+ynfffceSJUtwu93cdNNNjB49mosuuoj//ve/zJgxgzfeeKPCn0/Zv7dNmzZx+umnk5GRwdq1azn11FMZMGBAFT/l8BbJlSf1NVQQ8dQzIFFj8uTJzJ49m4EDB7Jy5UqGDBnCnXfe6XFO6TdXu90OgLukglnh5Wz2k9a4iVdbepNjGPfGB4f+jH3tfTKOaVZhjKUP+y+nvs2+PbsZesOtOPfvY9bbr1nH+1rH33l0Als3rOO8q69n3OtTad2pK2AlCfXiE/jbpVeSs2M7z949hqKDhQwaPsLrXu5qfOOr7qZGZf/eiouLa/T+SBCpFRqR+rnEk5IBCQtnnXUWDoeDDz74gGeeeYbrr7+evXv3MnDgQFJTU6t1jYkTJ7J06VJatGhB165dAdi6dWuV72t3Qg9S0hvx85KFzHj5Wd5/6hG2rl9Lk5aZNG/Trtz3HN2iFc3btCNn+x8s/uoLdu/cwdpli3nlwXtIapBS4b069upLrN3O0m9mk9G0Oa06dqZp6+NYPv9rDMOg84kne5yfv3cvm35ZxZZ1azzaz7r0CuLi41k+72sSkxtw8tnneRx37t/HmJtu5PHHH2f27NkkJiZyyimncP7552Oz2Xj++ed5+eWXufbaawG48MILq/x7Kk/Dhg0B+Oijj/joo49qdY3aKiwsxDAMnyUk69atwzCMCidClq08mfbs4wxu14Rpzz7uk/sHQ10qT8Ca52MYRrV7hX766SfGjx/PzJkza31PqR0lAxIWWrVqxaxZs+jUqRP33XcfH3/8MSNHjuSDDz6o9jXsdjtvvPEG1157LS+99BIDBgxg4sSJVb4vMbkBY197n+N79WXm6y/wvw/eoedpZ3Lfy+8S+9c34bJiYmK456V3OOns81j81ee8+uA9fDtr5qFv/hVJSEykTZdumKZJx54nAtCxZx8AWrTvSP1U6+F6+V0P0KRlJgs+mc5vv6ym04kneVwnOTWNgRcMA6D/eUOol+DwOJ5+dBMS4uN55JFHaNasGR988AFHHXUUffv25cMPPyQjI4PbbruNxYsXc/PNNx+ag1FTN998My1atODFF19kxAjv3olgKu298JWylSd9zjyXW594gT5nnuvT+wRSXSpPADp06MDUqVMZN25ctc7/6aefePDBB5UMBIG2MBapgGmafLLhT0p8/E+k2OXCme+9k11CYn3scXF1vr6r6CDrf1rBRy8+yS9LFvH0rPk0adEKgOxtWVx/em8aHdOUP7O2Rlw3/ltvvcX9999PYWEht99+O/feey8Ac+fOZeDAgXTv3p2WLVsye/ZsPvnkEzp16sTdd9/NF198wd69e+natSuPPvooffpYCdjkyZN5+umniY2NZdSoUUyYMIFjjz2WLVu2UFJSwu23387bb79NWloanQacyczXX6Bjzz5MeHc60559nA+fn8LQf97GsJv+j3EjBvPL0kWce/k1/PjtXPb8uZOTzj6P6yc+BsDG1T/xwv3/x86tm+lz5t/5ff0aNq/5mQff/g/H9+5b7uedcNVwVi5cwDOfLyClUQZXnNiRpq3a8OSnc5gzYxrP33srQ264hYtvvpMJVw1n0y+rKXTmk9wwnT5nnsPldz3A9JeeZtqzj3PVvRM4Z+QoSoqLuaZ/N1xFRbw6fwWTR4/glyWLuP3225k1axZ//vknl156KU8++SSxsbFs3ryZO+64gwULFlBUVESPHj147LHHOOGEE5g3bx4DBw6kf//+zJs3j/Hjx/Pggw8ybNgwtm/fzo8//kiPHj348MMPmTVrFldeeaXH53vggQcYP368//6HkUPUMyBSAcMwSIn3/cSpdSuWcmWfTl5/Viz4xifXz83OZtzIwWxe8wtX3PXAoUTgSDYfdp+HijVr1jBq1Cjy8/MZP348y5Yt8zpn+fLlpKSkMGXKFJo3b86IESN44403uPDCC7n77rvJysri7LPPJjs7m9mzZ3PfffcRFxfHAw88cKhMstTrr7/O008/zTHHHMP//d8dLJv3VbXi/On7+ZwzchT1EhL4+qN/8/PihRS7XDw+5lp+/3UNZ192NSnp6Wxe83OV1+p8Uj/rsy9bzNpli3GXlJC18Vf25e7ml8ULrXP6WOcc17U7l91+L5ff9QDHtm3PrHdeY870D/jbJVdQLyGBL6e+jWma/PT9fPbuzqH/PwYT73BQ2t3x1Vdfcdttt9G8eXOee+45XnrpJUpKSjj33HOZPn06I0eO5J577mHBggWceeaZ7N69u8K4P//8c4YMGULnzp2ZN28ezz//PP3792f06NEA9OvX71AVkASGpoiKVCI1Po49B1w+LRdr0a4D497wHt5o0a6jT66f0bQZ09dtr/DYjHXbaZ2a6JN7hZJvvvmGkpIShg0bxo033sjgwYOZMWOGxzmZmZm8+uqrgLUGxZdffolpmjz77LMe533//fd89913ANxwww1ce+21dOrUib59D39Dnz17NgD33nsvFw0bzrr8Yp6+48Yq4xx24+30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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# we start with creating a graph \n", + "graph = nx.DiGraph()\n", + "\n", + "# a graph is initiated based on the name and gemometry of locations.\n", + "# other attributes such as store_capacity and initials are not being used for drawing the graph.\n", + "for location in locations:\n", + " graph.add_node(location.name,\n", + " geometry = location.geometry)\n", + " \n", + "# add edges\n", + "for index, edge in enumerate(path):\n", + " graph.add_edge(edge[0].name, edge[1].name, weight = 1)\n", + " \n", + "# toggle to undirected and back to directed to make sure all edges are two way traffic\n", + "graph = graph.to_undirected() \n", + "graph = graph.to_directed()\n", + "\n", + "# create a positions dict for the purpose of plotting\n", + "positions = {}\n", + "for location in graph.nodes:\n", + " positions[location] = (graph.nodes[location]['geometry'].x, graph.nodes[location]['geometry'].y)\n", + " \n", + "# collect node labels.\n", + "labels = {}\n", + "for location in graph.nodes:\n", + " labels[location] = location\n", + "print('Number of edges is {}'.format(len(graph.edges)))\n", + "\n", + "# draw edges, nodes and labels.\n", + "nx.draw_networkx_edges(graph, pos=positions, width=3, edge_color=\"red\", alpha=1, arrowsize=40)\n", + "nx.draw_networkx_nodes(graph, pos=positions, node_color=\"lightblue\", node_size=1500)\n", + "nx.draw_networkx_labels(graph, pos=positions, labels=labels, font_size=8, font_weight='bold', font_color=\"black\")\n", + "\n", + "plt.axis(\"off\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2e99c49c", + "metadata": {}, + "outputs": [], + "source": [ + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "320f4313", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['offshore', 'offshore_waypoint', 'berth', 'offshore_waypoint', 'offshore']" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "['dump', 'dredging_waypoint', 'berth', 'dredging_waypoint', 'dump']" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", + "path2 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore')\n", + "path_seagoing = path1+path2[1:]\n", + "display(path_seagoing)\n", + "\n", + "path3 = nx.dijkstra_path(my_env.graph, 'dump', 'berth')\n", + "path4 = nx.dijkstra_path(my_env.graph, 'berth', 'dump')\n", + "path_dredging = path3+path4[1:]\n", + "display(path_dredging)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "d721dc45", + "metadata": {}, + "outputs": [], + "source": [ + "start_location = \"dump\"\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging vessel\",\n", + " \"geometry\": locations[[i for i, x in enumerate(locations) if x.name == start_location][0]].geometry, \n", + " \"capacity\": 10,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 0.5,\n", + " \"compute_v\": lambda x: 10 + 2 * x,\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "# assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1b3e5bb0", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_02\n", + "start_location = \"offshore\"\n", + "data_vessel02 = {\n", + " \"env\": my_env,\n", + " \"name\": \"seagoing vessel\",\n", + " \"geometry\": locations[[i for i, x in enumerate(locations) if x.name == start_location][0]].geometry, \n", + " \"capacity\": 10,\n", + " \"level\": 5,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 0.5,\n", + " \"compute_v\": lambda x: 10 + 2 * x}\n", + " \n", + "vessel02 = TransportProcessingResource(**data_vessel02)\n", + "assert not vessel02.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "ad787b99", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "90666ccb", + "metadata": {}, + "outputs": [], + "source": [ + "amount = 10\n", + "duration = 200\n", + "requested_resources={}\n", + "\n", + "a = [\n", + " openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty dredging vessel\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=berth,\n", + " duration=duration,\n", + " ),\n", + " openclsim.model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"loading dredging vessel\",\n", + " registry=registry,\n", + " processor=vessel01,\n", + " origin=berth,\n", + " destination=vessel01,\n", + " amount=amount,\n", + " duration=50*amount,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full dredging vessel\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=dump,\n", + " duration=duration,\n", + " ),\n", + " openclsim.model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"unloading dredging vessel\",\n", + " registry=registry,\n", + " processor=vessel01,\n", + " origin=vessel01,\n", + " destination=dump,\n", + " amount=amount,\n", + " duration=20*amount,\n", + " requested_resources=requested_resources,\n", + " )\n", + "]\n", + "\n", + "activities_dredging_vessel = openclsim.model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while sequential activity dredging vessel\",\n", + " registry=registry,\n", + " sub_processes=[openclsim.model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential activity subcycle dredging vessel\",\n", + " registry=registry,\n", + " sub_processes= a\n", + " )],\n", + " condition_event=[{\"type\": \"container\",\n", + " \"concept\": berth,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\"}\n", + " ]\n", + " )\n", + "\n", + "requested_resources_b = {}\n", + "b = [\n", + " openclsim.model.BasicActivity(\n", + " env=my_env,\n", + " name=\"interval time\",\n", + " registry=registry,\n", + " duration=200\n", + " ),\n", + " openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full seagoing vessel\",\n", + " registry=registry,\n", + " mover=vessel02,\n", + " destination=berth,\n", + " duration=duration,\n", + " ),\n", + " openclsim.model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"unloading seagoing vessel\",\n", + " registry=registry,\n", + " processor=vessel02,\n", + " origin=vessel02,\n", + " destination=berth,\n", + " amount=amount,\n", + " duration=30*amount,\n", + " requested_resources=requested_resources_b,\n", + " ),\n", + " openclsim.model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty seagoing vessel\",\n", + " registry=registry,\n", + " mover=vessel02,\n", + " destination=offshore,\n", + " duration=duration,\n", + " )\n", + "]\n", + "activities_seagoing_vessel = openclsim.model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while sequential activity dredging vessel\",\n", + " registry=registry,\n", + " sub_processes= b,\n", + " condition_event=[{\"type\": \"container\",\n", + " \"concept\": vessel02,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\",\n", + " }\n", + " ]\n", + " )\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "c0600ac8", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.model.register_processes([activities_dredging_vessel])\n", + "openclsim.model.register_processes([activities_seagoing_vessel])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e2ba0a83", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover seagoing vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover seagoing vessel destination offshore\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b27dff8c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStategeometrycontainer level
0sailing full seagoing vessel1970-01-01 00:03:20STARTPOINT (3.637610458072877 52.10701582514347)5
1sailing full seagoing vessel1970-01-01 00:06:40STOPPOINT (4.062705498083785 51.95909715255291)5
2unloading seagoing vessel1970-01-01 00:11:40STARTPOINT (4.062705498083785 51.95909715255291)5
3unloading seagoing vessel1970-01-01 00:16:40STOPPOINT (4.062705498083785 51.95909715255291)0
4sailing empty seagoing vessel1970-01-01 00:16:40STARTPOINT (4.062705498083785 51.95909715255291)0
5sailing empty seagoing vessel1970-01-01 00:20:00STOPPOINT (3.637610458072877 52.10701582514347)0
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sailing full seagoing vessel 1970-01-01 00:03:20 START \n", + "1 sailing full seagoing vessel 1970-01-01 00:06:40 STOP \n", + "2 unloading seagoing vessel 1970-01-01 00:11:40 START \n", + "3 unloading seagoing vessel 1970-01-01 00:16:40 STOP \n", + "4 sailing empty seagoing vessel 1970-01-01 00:16:40 START \n", + "5 sailing empty seagoing vessel 1970-01-01 00:20:00 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (3.637610458072877 52.10701582514347) 5 \n", + "1 POINT (4.062705498083785 51.95909715255291) 5 \n", + "2 POINT (4.062705498083785 51.95909715255291) 5 \n", + "3 POINT (4.062705498083785 51.95909715255291) 0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 0 \n", + "5 POINT (3.637610458072877 52.10701582514347) 0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bd8a22b8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStategeometrycontainer level
0sailing empty dredging vessel1970-01-01 00:00:00STARTPOINT (4.1795229742823 52.11590591837503)0.0
1sailing empty dredging vessel1970-01-01 00:03:20STOPPOINT (4.062705498083785 51.95909715255291)0.0
2loading dredging vessel1970-01-01 00:03:20STARTPOINT (4.062705498083785 51.95909715255291)0.0
3loading dredging vessel1970-01-01 00:11:40STOPPOINT (4.062705498083785 51.95909715255291)10.0
4sailing full dredging vessel1970-01-01 00:11:40STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
67loading dredging vessel1970-01-01 02:38:20STOPPOINT (4.062705498083785 51.95909715255291)5.0
68sailing full dredging vessel1970-01-01 02:38:20STARTPOINT (4.062705498083785 51.95909715255291)5.0
69sailing full dredging vessel1970-01-01 02:41:40STOPPOINT (4.1795229742823 52.11590591837503)5.0
70unloading dredging vessel1970-01-01 02:41:40STARTPOINT (4.1795229742823 52.11590591837503)5.0
71unloading dredging vessel1970-01-01 02:45:00STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", + "

72 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sailing empty dredging vessel 1970-01-01 00:00:00 START \n", + "1 sailing empty dredging vessel 1970-01-01 00:03:20 STOP \n", + "2 loading dredging vessel 1970-01-01 00:03:20 START \n", + "3 loading dredging vessel 1970-01-01 00:11:40 STOP \n", + "4 sailing full dredging vessel 1970-01-01 00:11:40 START \n", + ".. ... ... ... \n", + "67 loading dredging vessel 1970-01-01 02:38:20 STOP \n", + "68 sailing full dredging vessel 1970-01-01 02:38:20 START \n", + "69 sailing full dredging vessel 1970-01-01 02:41:40 STOP \n", + "70 unloading dredging vessel 1970-01-01 02:41:40 START \n", + "71 unloading dredging vessel 1970-01-01 02:45:00 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + ".. ... ... \n", + "67 POINT (4.062705498083785 51.95909715255291) 5.0 \n", + "68 POINT (4.062705498083785 51.95909715255291) 5.0 \n", + "69 POINT (4.1795229742823 52.11590591837503) 5.0 \n", + "70 POINT (4.1795229742823 52.11590591837503) 5.0 \n", + "71 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "\n", + "[72 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "8f63fc97", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(98,137,199)", + "width": 10 + }, + "mode": "lines", + "name": "loading dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:11:40", + "1970-01-01T00:11:40", + "1970-01-01T00:11:40", + "1970-01-01T00:21:40", + "1970-01-01T00:21:40", + "1970-01-01T00:30:00", + "1970-01-01T00:30:00", + "1970-01-01T00:30:00", + "1970-01-01T00:40:00", + "1970-01-01T00:40:00", + "1970-01-01T00:48:20", + "1970-01-01T00:48:20", + "1970-01-01T00:48:20", + "1970-01-01T00:58:20", + "1970-01-01T00:58:20", + "1970-01-01T01:06:40", + "1970-01-01T01:06:40", + "1970-01-01T01:06:40", + "1970-01-01T01:16:40", + "1970-01-01T01:16:40", + "1970-01-01T01:25:00", + "1970-01-01T01:25:00", + "1970-01-01T01:25:00", + "1970-01-01T01:35:00", + "1970-01-01T01:35:00", + "1970-01-01T01:43:20", + "1970-01-01T01:43:20", + "1970-01-01T01:43:20", + "1970-01-01T01:53:20", + "1970-01-01T01:53:20", + "1970-01-01T02:01:40", + "1970-01-01T02:01:40", + "1970-01-01T02:01:40", + "1970-01-01T02:11:40", + "1970-01-01T02:11:40", + "1970-01-01T02:20:00", + "1970-01-01T02:20:00", + "1970-01-01T02:20:00", + "1970-01-01T02:30:00", + "1970-01-01T02:30:00", + "1970-01-01T02:38:20", + "1970-01-01T02:38:20", + "1970-01-01T02:38:20" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(134,173,235)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:18:20", + "1970-01-01T00:18:20", + "1970-01-01T00:21:40", + "1970-01-01T00:21:40", + "1970-01-01T00:21:40", + "1970-01-01T00:36:40", + "1970-01-01T00:36:40", + "1970-01-01T00:40:00", + "1970-01-01T00:40:00", + "1970-01-01T00:40:00", + "1970-01-01T00:55:00", + "1970-01-01T00:55:00", + "1970-01-01T00:58:20", + "1970-01-01T00:58:20", + "1970-01-01T00:58:20", + "1970-01-01T01:13:20", + "1970-01-01T01:13:20", + "1970-01-01T01:16:40", + "1970-01-01T01:16:40", + "1970-01-01T01:16:40", + "1970-01-01T01:31:40", + "1970-01-01T01:31:40", + "1970-01-01T01:35:00", + "1970-01-01T01:35:00", + "1970-01-01T01:35:00", + "1970-01-01T01:50:00", + "1970-01-01T01:50:00", + "1970-01-01T01:53:20", + "1970-01-01T01:53:20", + "1970-01-01T01:53:20", + "1970-01-01T02:08:20", + "1970-01-01T02:08:20", + "1970-01-01T02:11:40", + "1970-01-01T02:11:40", + "1970-01-01T02:11:40", + "1970-01-01T02:26:40", + "1970-01-01T02:26:40", + "1970-01-01T02:30:00", + "1970-01-01T02:30:00", + "1970-01-01T02:30:00" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(170,209,15)", + "width": 10 + }, + "mode": "lines", + "name": "unloading dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:15:00", + "1970-01-01T00:15:00", + "1970-01-01T00:18:20", + "1970-01-01T00:18:20", + "1970-01-01T00:18:20", + "1970-01-01T00:33:20", + "1970-01-01T00:33:20", + "1970-01-01T00:36:40", + "1970-01-01T00:36:40", + "1970-01-01T00:36:40", + "1970-01-01T00:51:40", + "1970-01-01T00:51:40", + "1970-01-01T00:55:00", + "1970-01-01T00:55:00", + "1970-01-01T00:55:00", + "1970-01-01T01:10:00", + "1970-01-01T01:10:00", + "1970-01-01T01:13:20", + "1970-01-01T01:13:20", + "1970-01-01T01:13:20", + "1970-01-01T01:28:20", + "1970-01-01T01:28:20", + "1970-01-01T01:31:40", + "1970-01-01T01:31:40", + "1970-01-01T01:31:40", + "1970-01-01T01:46:40", + "1970-01-01T01:46:40", + "1970-01-01T01:50:00", + "1970-01-01T01:50:00", + "1970-01-01T01:50:00", + "1970-01-01T02:05:00", + "1970-01-01T02:05:00", + "1970-01-01T02:08:20", + "1970-01-01T02:08:20", + "1970-01-01T02:08:20", + "1970-01-01T02:23:20", + "1970-01-01T02:23:20", + "1970-01-01T02:26:40", + "1970-01-01T02:26:40", + "1970-01-01T02:26:40", + "1970-01-01T02:41:40", + "1970-01-01T02:41:40", + "1970-01-01T02:45:00", + "1970-01-01T02:45:00", + "1970-01-01T02:45:00" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(206,245,51)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:11:40", + "1970-01-01T00:11:40", + "1970-01-01T00:15:00", + "1970-01-01T00:15:00", + "1970-01-01T00:15:00", + "1970-01-01T00:30:00", + "1970-01-01T00:30:00", + "1970-01-01T00:33:20", + "1970-01-01T00:33:20", + "1970-01-01T00:33:20", + "1970-01-01T00:48:20", + "1970-01-01T00:48:20", + "1970-01-01T00:51:40", + "1970-01-01T00:51:40", + "1970-01-01T00:51:40", + "1970-01-01T01:06:40", + "1970-01-01T01:06:40", + "1970-01-01T01:10:00", + "1970-01-01T01:10:00", + "1970-01-01T01:10:00", + "1970-01-01T01:25:00", + "1970-01-01T01:25:00", + "1970-01-01T01:28:20", + "1970-01-01T01:28:20", + "1970-01-01T01:28:20", + "1970-01-01T01:43:20", + "1970-01-01T01:43:20", + "1970-01-01T01:46:40", + "1970-01-01T01:46:40", + "1970-01-01T01:46:40", + "1970-01-01T02:01:40", + "1970-01-01T02:01:40", + "1970-01-01T02:05:00", + "1970-01-01T02:05:00", + "1970-01-01T02:05:00", + "1970-01-01T02:20:00", + "1970-01-01T02:20:00", + "1970-01-01T02:23:20", + "1970-01-01T02:23:20", + "1970-01-01T02:23:20", + "1970-01-01T02:38:20", + "1970-01-01T02:38:20", + "1970-01-01T02:41:40", + "1970-01-01T02:41:40", + "1970-01-01T02:41:40" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(242,25,87)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full seagoing vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:06:40", + "1970-01-01T00:06:40", + "1970-01-01T00:06:40" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(22,61,123)", + "width": 10 + }, + "mode": "lines", + "name": "unloading seagoing vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:11:40", + "1970-01-01T00:11:40", + "1970-01-01T00:16:40", + "1970-01-01T00:16:40", + "1970-01-01T00:16:40" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(58,97,159)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty seagoing vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:16:40", + "1970-01-01T00:16:40", + "1970-01-01T00:20:00", + "1970-01-01T00:20:00", + "1970-01-01T00:20:00" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T02:45:00" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "openclsim.plot.get_gantt_chart([vessel01,vessel02], id_map=[activities_dredging_vessel, activities_seagoing_vessel])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "myenv", + "language": "python", + "name": "myenv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From d4331cb9374f1fe42e1c283ede08dc736f958a7c Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Fri, 12 May 2023 16:14:03 +0200 Subject: [PATCH 059/100] update __init__.py --- src/openclsim/core/__init__.py | 2 +- src/openclsim/core/{Indicators.py => indicator.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/openclsim/core/{Indicators.py => indicator.py} (100%) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 8f8aec62..72eb77ff 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -11,7 +11,7 @@ from .simpy_object import SimpyObject from .priority import ResourceAllocation from .priority import VesselClaim -from .indicators import Port +from .indicator import Port __all__ = [ "basic", diff --git a/src/openclsim/core/Indicators.py b/src/openclsim/core/indicator.py similarity index 100% rename from src/openclsim/core/Indicators.py rename to src/openclsim/core/indicator.py From 3df69cd42b9ccd6211084cdd91bcf0afe4d10256 Mon Sep 17 00:00:00 2001 From: "arash.sepehri" Date: Tue, 16 May 2023 14:19:10 +0200 Subject: [PATCH 060/100] update notebook 37 --- notebooks/37_Claim_Berth_Interference.ipynb | 1116 +++++++++++-------- 1 file changed, 657 insertions(+), 459 deletions(-) diff --git a/notebooks/37_Claim_Berth_Interference.ipynb b/notebooks/37_Claim_Berth_Interference.ipynb index 8f253f73..60efd1f3 100644 --- a/notebooks/37_Claim_Berth_Interference.ipynb +++ b/notebooks/37_Claim_Berth_Interference.ipynb @@ -1,5 +1,35 @@ { "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "id": "c3bb6ca2", + "metadata": {}, + "source": [ + "### Interference of seagoing and dredging vessels\n", + "\n", + "This notebook focuses on the interference of a single dredging vessel and a single seagoing vessel when trying to serve a berth location. The main objective of this problem is to monitor the interferences of both seagoing and dredging operations simultaneously. This monitoring process can help researchers and practitioners to\n", + "1. Identify the key perfromance indicators of seagoing operation (e.g. ship turnaround time, waiting time in anchorage area, etc.)\n", + "2. Quantify trade-offs (cost, emission, energy consumption, etc.) when selecting optimal port maintenance strategies.\n", + "\n", + "The simulation proposed in this notebook is based on running the following activities.\n", + "* Dredging vessel does a single run activity which is performed until the total amount of soil is dredged from the berth location\n", + "* Seagoing vessel's subprocesses include sailing full, unloading cargo in the berth location, and sailing empty\n", + "\n", + "The purpose of developing this notebook is to visualize that the berth location can serve one vessel at the same time and when one of the seagoing/dredging vessels are serving the berth, the other one should wait for the berth to get empty. The output shows us how much the seagoing vessel waits for the dredging vessel before entering the berth location and minimizing this waiting time can be the next steps.\n", + "\n", + "The following steps are proposed to develop this notebook." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "c90ad146", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, { "cell_type": "code", "execution_count": 1, @@ -15,7 +45,9 @@ "import datetime as dt\n", "import time\n", "import simpy\n", - "import openclsim\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plot as plot\n", "import opentnsim\n", "\n", "import pandas as pd\n", @@ -25,6 +57,15 @@ "import folium" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "0b62c670", + "metadata": {}, + "source": [ + "#### 1. Initialise simpy environment" + ] + }, { "cell_type": "code", "execution_count": 2, @@ -37,6 +78,15 @@ "my_env = simpy.Environment(initial_time=simulation_start)" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "3d9fb496", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, { "cell_type": "code", "execution_count": 3, @@ -44,30 +94,32 @@ "metadata": {}, "outputs": [], "source": [ + "# create a Site object based on desired mixin classes\n", "Site = type('Site',\n", - " (openclsim.core.Identifiable,\n", - " openclsim.core.Log,\n", - " openclsim.core.Locatable,\n", - " openclsim.core.HasContainer,\n", - " openclsim.core.HasResource,), {})\n", + " (core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,), {})\n", "\n", + "# create a Waypoint object based on desired mixin classes\n", "Waypoint = type('Way',\n", - " (openclsim.core.Identifiable,\n", - " openclsim.core.Log,\n", - " openclsim.core.Locatable,), {})\n", + " (core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,), {})\n", "\n", - "# create a TransportProcessingResource object based on desired mixin classes\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", "TransportProcessingResource = type(\n", " \"TransportProcessingResource\",\n", " (\n", - " openclsim.core.ContainerDependentMovable, # add opentnsim Movable to allow sailing on graph\n", - " openclsim.core.HasResource,\n", - " openclsim.core.HasContainer,\n", - " openclsim.core.Processor,\n", - " openclsim.core.Identifiable,\n", - " openclsim.core.Log,\n", - " openclsim.core.LoadingFunction,\n", - " openclsim.core.UnloadingFunction,\n", + " core.ContainerDependentMovable,\n", + " core.HasResource,\n", + " core.HasContainer,\n", + " core.Processor,\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.LoadingFunction,\n", + " core.UnloadingFunction,\n", " # capture extra metadata to make sure we don't have leftover arguments\n", " opentnsim.core.ExtraMetadata\n", " ),\n", @@ -75,15 +127,32 @@ ")" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "c900ac62", + "metadata": {}, + "source": [ + "#### 3. Create objects" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "a53ca26d", + "metadata": {}, + "source": [ + "##### 3.1. Create site object(s)" + ] + }, { "cell_type": "code", "execution_count": 4, - "id": "73605cf2", + "id": "194d87d7", "metadata": {}, "outputs": [], "source": [ - "locations = []\n", - "\n", + "# prepare input data for offshore\n", "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", "data_offshore = {\"env\": my_env,\n", " \"name\": \"offshore\",\n", @@ -93,6 +162,7 @@ " }\n", "offshore = Site(**data_offshore)\n", "\n", + "# prepare input data for offshore waypoint\n", "location_offshore_waypoint = shapely.geometry.Point(3.86736205092947,52.02761645094746)\n", "data_offshore_waypoint = {\"env\": my_env,\n", " \"name\": \"offshore_waypoint\",\n", @@ -100,6 +170,7 @@ " }\n", "offshore_waypoint = Waypoint(**data_offshore_waypoint)\n", "\n", + "# prepare input data for berth\n", "location_berth = shapely.geometry.Point(4.062705498083785,51.95909715255291)\n", "data_berth = {\"env\": my_env,\n", " \"name\": \"berth\",\n", @@ -110,6 +181,7 @@ " }\n", "berth = Site(**data_berth)\n", "\n", + "# prepare input data for dredging waypoint\n", "location_dredging_waypoint = shapely.geometry.Point(4.051396629618069,52.02445392693116)\n", "data_dredging_waypoint = {\"env\": my_env,\n", " \"name\": \"dredging_waypoint\",\n", @@ -117,6 +189,7 @@ " }\n", "dredging_waypoint = Waypoint(**data_dredging_waypoint)\n", "\n", + "# prepare input data for dump\n", "location_dump = shapely.geometry.Point(4.1795229742823,52.11590591837503)\n", "data_dump = {\"env\": my_env,\n", " \"name\": \"dump\",\n", @@ -128,41 +201,47 @@ ] }, { - "cell_type": "code", - "execution_count": 5, - "id": "a3628d02", + "attachments": {}, + "cell_type": "markdown", + "id": "11f711d8", "metadata": {}, - "outputs": [], "source": [ - "path = [\n", - " [offshore, offshore_waypoint],\n", - " [offshore_waypoint, berth],\n", - " [dump, dredging_waypoint],\n", - " [dredging_waypoint, berth]]" + "##### 3.2. Create graph object" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "aa706fd2", - "metadata": {}, + "execution_count": 5, + "id": "d1190623", + "metadata": { + "scrolled": true + }, "outputs": [], "source": [ + "# define four edges in the graph\n", + "edges = [\n", + " [offshore, offshore_waypoint],\n", + " [offshore_waypoint, berth],\n", + " [dump, dredging_waypoint],\n", + " [dredging_waypoint, berth]]\n", + "\n", "# three locations (offshore, berth, and dump) are defined to allow the vessels pass the nodes back and forth.\n", "# based on the mixins, more attributes are defined for each location.\n", - "locations = []\n", - "locations.append(offshore)\n", - "locations.append(offshore_waypoint)\n", - "locations.append(berth)\n", - "locations.append(dredging_waypoint)\n", - "locations.append(dump)" + "nodes = []\n", + "nodes.append(offshore)\n", + "nodes.append(offshore_waypoint)\n", + "nodes.append(berth)\n", + "nodes.append(dredging_waypoint)\n", + "nodes.append(dump)" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "de44cbac", - "metadata": {}, + "execution_count": 6, + "id": "0b1c3d48", + "metadata": { + "scrolled": false + }, "outputs": [ { "name": "stdout", @@ -173,7 +252,7 @@ }, { "data": { - "image/png": "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e/ZsPvnkEzp16sTdd9/NF198wd69e+natSuPPvooffpYCdjkyZN5+umniY2NZdSoUUyYMIFjjz2WLVu2UFJSwu23387bb79NWloanQacyczXX6Bjzz5MeHc60559nA+fn8LQf97GsJv+j3EjBvPL0kWce/k1/PjtXPb8uZOTzj6P6yc+BsDG1T/xwv3/x86tm+lz5t/5ff0aNq/5mQff/g/H9+5b7uedcNVwVi5cwDOfLyClUQZXnNiRpq3a8OSnc5gzYxrP33srQ264hYtvvpMJVw1n0y+rKXTmk9wwnT5nnsPldz3A9JeeZtqzj3PVvRM4Z+QoSoqLuaZ/N1xFRbw6fwWTR4/glyWLuP3225k1axZ//vknl156KU8++SSxsbFs3ryZO+64gwULFlBUVESPHj147LHHOOGEE5g3bx4DBw6kf//+zJs3j/Hjx/Pggw8ybNgwtm/fzo8//kiPHj348MMPmTVrFldeeaXH53vggQcYP368//6HkUPUMyBSAcMwSIn3/cSpdSuWcmWfTl5/Viz4xifXz83OZtzIwWxe8wtX3PXAoUTgSDYfdp+HijVr1jBq1Cjy8/MZP348y5Yt8zpn+fLlpKSkMGXKFJo3b86IESN44403uPDCC7n77rvJysri7LPPJjs7m9mzZ3PfffcRFxfHAw88cKhMstTrr7/O008/zTHHHMP//d8dLJv3VbXi/On7+ZwzchT1EhL4+qN/8/PihRS7XDw+5lp+/3UNZ192NSnp6Wxe83OV1+p8Uj/rsy9bzNpli3GXlJC18Vf25e7ml8ULrXP6WOcc17U7l91+L5ff9QDHtm3PrHdeY870D/jbJVdQLyGBL6e+jWma/PT9fPbuzqH/PwYT73BQ2t3x1Vdfcdttt9G8eXOee+45XnrpJUpKSjj33HOZPn06I0eO5J577mHBggWceeaZ7N69u8K4P//8c4YMGULnzp2ZN28ezz//PP3792f06NEA9OvX71AVkASGpoiKVCI1Po49B1w+LRdr0a4D497wHt5o0a6jT66f0bQZ09dtr/DYjHXbaZ2a6JN7hZJvvvmGkpIShg0bxo033sjgwYOZMWOGxzmZmZm8+uqrgLUGxZdffolpmjz77LMe533//fd89913ANxwww1ce+21dOrUib59D39Dnz17NgD33nsvFw0bzrr8Yp6+48Yq4xx24+30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\n", + "image/png": "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e/ZsPvnkEzp16sTdd9/NF198wd69e+natSuPPvooffpYCdjkyZN5+umniY2NZdSoUUyYMIFjjz2WLVu2UFJSwu23387bb79NWloanQacyczXX6Bjzz5MeHc60559nA+fn8LQf97GsJv+j3EjBvPL0kWce/k1/PjtXPb8uZOTzj6P6yc+BsDG1T/xwv3/x86tm+lz5t/5ff0aNq/5mQff/g/H9+5b7uedcNVwVi5cwDOfLyClUQZXnNiRpq3a8OSnc5gzYxrP33srQ264hYtvvpMJVw1n0y+rKXTmk9wwnT5nnsPldz3A9JeeZtqzj3PVvRM4Z+QoSoqLuaZ/N1xFRbw6fwWTR4/glyWLuP3225k1axZ//vknl156KU8++SSxsbFs3ryZO+64gwULFlBUVESPHj147LHHOOGEE5g3bx4DBw6kf//+zJs3j/Hjx/Pggw8ybNgwtm/fzo8//kiPHj348MMPmTVrFldeeaXH53vggQcYP368//6HkUPUMyBSAcMwSIn3/cSpdSuWcmWfTl5/Viz4xifXz83OZtzIwWxe8wtX3PXAoUTgSDYfdp+HijVr1jBq1Cjy8/MZP348y5Yt8zpn+fLlpKSkMGXKFJo3b86IESN44403uPDCC7n77rvJysri7LPPJjs7m9mzZ3PfffcRFxfHAw88cKhMstTrr7/O008/zTHHHMP//d8dLJv3VbXi/On7+ZwzchT1EhL4+qN/8/PihRS7XDw+5lp+/3UNZ192NSnp6Wxe83OV1+p8Uj/rsy9bzNpli3GXlJC18Vf25e7ml8ULrXP6WOcc17U7l91+L5ff9QDHtm3PrHdeY870D/jbJVdQLyGBL6e+jWma/PT9fPbuzqH/PwYT73BQ2t3x1Vdfcdttt9G8eXOee+45XnrpJUpKSjj33HOZPn06I0eO5J577mHBggWceeaZ7N69u8K4P//8c4YMGULnzp2ZN28ezz//PP3792f06NEA9OvX71AVkASGpoiKVCI1Po49B1w+LRdr0a4D497wHt5o0a6jT66f0bQZ09dtr/DYjHXbaZ2a6JN7hZJvvvmGkpIShg0bxo033sjgwYOZMWOGxzmZmZm8+uqrgLUGxZdffolpmjz77LMe533//fd89913ANxwww1ce+21dOrUib59D39Dnz17NgD33nsvFw0bzrr8Yp6+48Yq4xx24+30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", "text/plain": [ "
" ] @@ -188,12 +267,12 @@ "\n", "# a graph is initiated based on the name and gemometry of locations.\n", "# other attributes such as store_capacity and initials are not being used for drawing the graph.\n", - "for location in locations:\n", - " graph.add_node(location.name,\n", - " geometry = location.geometry)\n", + "for node in nodes:\n", + " graph.add_node(node.name,\n", + " geometry = node.geometry)\n", " \n", "# add edges\n", - "for index, edge in enumerate(path):\n", + "for index, edge in enumerate(edges):\n", " graph.add_edge(edge[0].name, edge[1].name, weight = 1)\n", " \n", "# toggle to undirected and back to directed to make sure all edges are two way traffic\n", @@ -202,13 +281,13 @@ "\n", "# create a positions dict for the purpose of plotting\n", "positions = {}\n", - "for location in graph.nodes:\n", - " positions[location] = (graph.nodes[location]['geometry'].x, graph.nodes[location]['geometry'].y)\n", + "for node in graph.nodes:\n", + " positions[node] = (graph.nodes[node]['geometry'].x, graph.nodes[node]['geometry'].y)\n", " \n", "# collect node labels.\n", "labels = {}\n", - "for location in graph.nodes:\n", - " labels[location] = location\n", + "for node in graph.nodes:\n", + " labels[node] = node\n", "print('Number of edges is {}'.format(len(graph.edges)))\n", "\n", "# draw edges, nodes and labels.\n", @@ -220,20 +299,30 @@ "plt.show()" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "176c64e8", + "metadata": {}, + "source": [ + "##### 3.3. Create vessel object(s)" + ] + }, { "cell_type": "code", - "execution_count": 8, - "id": "2e99c49c", + "execution_count": 7, + "id": "515a8e5f", "metadata": {}, "outputs": [], "source": [ + "# assigning graph to the simpy environment\n", "my_env.graph = graph" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "320f4313", + "execution_count": 8, + "id": "d7a09966", "metadata": {}, "outputs": [ { @@ -256,11 +345,13 @@ } ], "source": [ + "# define path for seagoing vessel\n", "path1 = nx.dijkstra_path(my_env.graph, 'offshore', 'berth')\n", "path2 = nx.dijkstra_path(my_env.graph, 'berth', 'offshore')\n", "path_seagoing = path1+path2[1:]\n", "display(path_seagoing)\n", "\n", + "# define path for dredging vessel\n", "path3 = nx.dijkstra_path(my_env.graph, 'dump', 'berth')\n", "path4 = nx.dijkstra_path(my_env.graph, 'berth', 'dump')\n", "path_dredging = path3+path4[1:]\n", @@ -269,16 +360,16 @@ }, { "cell_type": "code", - "execution_count": 10, - "id": "d721dc45", + "execution_count": 9, + "id": "3a93707b", "metadata": {}, "outputs": [], "source": [ - "start_location = \"dump\"\n", + "# prepare input data for vessel_01 (dredging vessel)\n", "data_vessel01 = {\n", " \"env\": my_env,\n", " \"name\": \"dredging vessel\",\n", - " \"geometry\": locations[[i for i, x in enumerate(locations) if x.name == start_location][0]].geometry, \n", + " \"geometry\": location_dump, \n", " \"capacity\": 10,\n", " \"loading_rate\": 1,\n", " \"unloading_rate\": 0.5,\n", @@ -286,63 +377,66 @@ "}\n", "# instantiate vessel_01 \n", "vessel01 = TransportProcessingResource(**data_vessel01)\n", - "# assert not vessel01.metadata" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "1b3e5bb0", - "metadata": {}, - "outputs": [], - "source": [ - "# prepare input data for vessel_02\n", - "start_location = \"offshore\"\n", + "# assert not vessel01.metadata\n", + "\n", + "\n", + "# prepare input data for vessel_02 (seagoing vessel)\n", "data_vessel02 = {\n", " \"env\": my_env,\n", " \"name\": \"seagoing vessel\",\n", - " \"geometry\": locations[[i for i, x in enumerate(locations) if x.name == start_location][0]].geometry, \n", + " \"geometry\": location_offshore, \n", " \"capacity\": 10,\n", " \"level\": 5,\n", " \"loading_rate\": 1,\n", " \"unloading_rate\": 0.5,\n", - " \"compute_v\": lambda x: 10 + 2 * x}\n", - " \n", + " \"compute_v\": lambda x: 15 + 2 * x,\n", + "}\n", + "# instantiate vessel_02\n", "vessel02 = TransportProcessingResource(**data_vessel02)\n", "assert not vessel02.metadata" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "cecba605", + "metadata": {}, + "source": [ + "##### 3.4. Create activity object(s)" + ] + }, { "cell_type": "code", - "execution_count": 12, - "id": "ad787b99", + "execution_count": 10, + "id": "4824e5c2", "metadata": {}, "outputs": [], "source": [ + "# Initialise registry\n", "registry = {}" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "90666ccb", + "execution_count": 11, + "id": "8aa0f3d5", "metadata": {}, "outputs": [], "source": [ + "# Specify the amount of container and duration of activities\n", "amount = 10\n", "duration = 200\n", - "requested_resources={}\n", "\n", - "a = [\n", - " openclsim.model.MoveActivity(\n", + "# Specify dredging subprocesses\n", + "dredging_subprocesses = [\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing empty dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=berth,\n", - " duration=duration,\n", " ),\n", - " openclsim.model.ShiftAmountActivity(\n", + " model.ShiftAmountActivity(\n", " env=my_env,\n", " name=\"loading dredging vessel\",\n", " registry=registry,\n", @@ -350,18 +444,16 @@ " origin=berth,\n", " destination=vessel01,\n", " amount=amount,\n", - " duration=50*amount,\n", - " requested_resources=requested_resources,\n", + " duration=50*amount\n", " ),\n", - " openclsim.model.MoveActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing full dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=dump,\n", - " duration=duration,\n", " ),\n", - " openclsim.model.ShiftAmountActivity(\n", + " model.ShiftAmountActivity(\n", " env=my_env,\n", " name=\"unloading dredging vessel\",\n", " registry=registry,\n", @@ -369,45 +461,53 @@ " origin=vessel01,\n", " destination=dump,\n", " amount=amount,\n", - " duration=20*amount,\n", - " requested_resources=requested_resources,\n", + " duration=20*amount\n", " )\n", "]\n", "\n", - "activities_dredging_vessel = openclsim.model.WhileActivity(\n", + "# Define activities of the dredging vessel\n", + "activities_dredging_vessel = model.WhileActivity(\n", " env=my_env,\n", " name=\"while sequential activity dredging vessel\",\n", " registry=registry,\n", - " sub_processes=[openclsim.model.SequentialActivity(\n", + " sub_processes=[model.SequentialActivity(\n", " env=my_env,\n", " name=f\"sequential activity subcycle dredging vessel\",\n", " registry=registry,\n", - " sub_processes= a\n", + " sub_processes= dredging_subprocesses\n", " )],\n", " condition_event=[{\"type\": \"container\",\n", " \"concept\": berth,\n", " \"state\": \"empty\",\n", " \"id_\":\"default_reservations\"}\n", " ]\n", - " )\n", - "\n", - "requested_resources_b = {}\n", - "b = [\n", - " openclsim.model.BasicActivity(\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "a30a1ce4", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify seagoing subprocesses\n", + "requested_resources = {}\n", + "seagoing_subprocesses = [\n", + " model.BasicActivity(\n", " env=my_env,\n", " name=\"interval time\",\n", " registry=registry,\n", " duration=200\n", " ),\n", - " openclsim.model.MoveActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing full seagoing vessel\",\n", " registry=registry,\n", " mover=vessel02,\n", " destination=berth,\n", - " duration=duration,\n", " ),\n", - " openclsim.model.ShiftAmountActivity(\n", + " model.ShiftAmountActivity(\n", " env=my_env,\n", " name=\"unloading seagoing vessel\",\n", " registry=registry,\n", @@ -416,60 +516,74 @@ " destination=berth,\n", " amount=amount,\n", " duration=30*amount,\n", - " requested_resources=requested_resources_b,\n", + " requested_resources = requested_resources,\n", " ),\n", - " openclsim.model.MoveActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing empty seagoing vessel\",\n", " registry=registry,\n", " mover=vessel02,\n", " destination=offshore,\n", - " duration=duration,\n", " )\n", "]\n", - "activities_seagoing_vessel = openclsim.model.WhileActivity(\n", + "\n", + "# Define activities of the seagoing vessel\n", + "activities_seagoing_vessel = model.WhileActivity(\n", " env=my_env,\n", " name=\"while sequential activity dredging vessel\",\n", " registry=registry,\n", - " sub_processes= b,\n", + " sub_processes= seagoing_subprocesses,\n", " condition_event=[{\"type\": \"container\",\n", " \"concept\": vessel02,\n", " \"state\": \"empty\",\n", " \"id_\":\"default_reservations\",\n", " }\n", " ]\n", - " )\n", - "\n" + " )" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "4692b789", + "metadata": {}, + "source": [ + "#### 4. Register activities and run simpy" ] }, { "cell_type": "code", - "execution_count": 14, - "id": "c0600ac8", + "execution_count": 13, + "id": "c7bc8929", "metadata": {}, "outputs": [], "source": [ - "openclsim.model.register_processes([activities_dredging_vessel])\n", - "openclsim.model.register_processes([activities_seagoing_vessel])" + "# register dredging activities\n", + "model.register_processes([activities_dredging_vessel])\n", + "\n", + "#register seagoing activities\n", + "model.register_processes([activities_seagoing_vessel])" ] }, { "cell_type": "code", - "execution_count": 15, - "id": "e2ba0a83", - "metadata": {}, + "execution_count": 14, + "id": "ca0db928", + "metadata": { + "scrolled": false + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover seagoing vessel destination berth\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover seagoing vessel destination offshore\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", @@ -511,10 +625,30 @@ ] }, { - "cell_type": "code", - "execution_count": 16, - "id": "b27dff8c", + "attachments": {}, + "cell_type": "markdown", + "id": "c2b0490e", + "metadata": {}, + "source": [ + "#### 5. Inspect Results" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "cf76e6ec", "metadata": {}, + "source": [ + "##### 5.1. Inspect logs" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "c6f1186c", + "metadata": { + "scrolled": false + }, "outputs": [ { "data": { @@ -547,72 +681,125 @@ " \n", " \n", " 0\n", - " sailing full seagoing vessel\n", - " 1970-01-01 00:03:20\n", + " sailing empty dredging vessel\n", + " 1970-01-01 00:00:00.000000\n", " START\n", - " POINT (3.637610458072877 52.10701582514347)\n", - " 5\n", + " POINT (4.1795229742823 52.11590591837503)\n", + " 0.0\n", " \n", " \n", " 1\n", - " sailing full seagoing vessel\n", - " 1970-01-01 00:06:40\n", + " sailing empty dredging vessel\n", + " 1970-01-01 00:32:00.113018\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 5\n", + " 0.0\n", " \n", " \n", " 2\n", - " unloading seagoing vessel\n", - " 1970-01-01 00:11:40\n", + " loading dredging vessel\n", + " 1970-01-01 00:32:00.113018\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 5\n", + " 0.0\n", " \n", " \n", " 3\n", - " unloading seagoing vessel\n", - " 1970-01-01 00:16:40\n", + " loading dredging vessel\n", + " 1970-01-01 00:40:20.113018\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 0\n", + " 10.0\n", " \n", " \n", " 4\n", - " sailing empty seagoing vessel\n", - " 1970-01-01 00:16:40\n", + " sailing full dredging vessel\n", + " 1970-01-01 00:40:20.113018\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 0\n", + " 10.0\n", " \n", " \n", - " 5\n", - " sailing empty seagoing vessel\n", - " 1970-01-01 00:20:00\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " 67\n", + " loading dredging vessel\n", + " 1970-01-01 10:03:01.770622\n", " STOP\n", - " POINT (3.637610458072877 52.10701582514347)\n", - " 0\n", + " POINT (4.062705498083785 51.95909715255291)\n", + " 5.0\n", + " \n", + " \n", + " 68\n", + " sailing full dredging vessel\n", + " 1970-01-01 10:03:01.770622\n", + " START\n", + " POINT (4.062705498083785 51.95909715255291)\n", + " 5.0\n", + " \n", + " \n", + " 69\n", + " sailing full dredging vessel\n", + " 1970-01-01 10:32:07.327912\n", + " STOP\n", + " POINT (4.1795229742823 52.11590591837503)\n", + " 5.0\n", + " \n", + " \n", + " 70\n", + " unloading dredging vessel\n", + " 1970-01-01 10:32:07.327912\n", + " START\n", + " POINT (4.1795229742823 52.11590591837503)\n", + " 5.0\n", + " \n", + " \n", + " 71\n", + " unloading dredging vessel\n", + " 1970-01-01 10:35:27.327912\n", + " STOP\n", + " POINT (4.1795229742823 52.11590591837503)\n", + " 0.0\n", " \n", " \n", "\n", + "

72 rows × 5 columns

\n", "" ], "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 sailing full seagoing vessel 1970-01-01 00:03:20 START \n", - "1 sailing full seagoing vessel 1970-01-01 00:06:40 STOP \n", - "2 unloading seagoing vessel 1970-01-01 00:11:40 START \n", - "3 unloading seagoing vessel 1970-01-01 00:16:40 STOP \n", - "4 sailing empty seagoing vessel 1970-01-01 00:16:40 START \n", - "5 sailing empty seagoing vessel 1970-01-01 00:20:00 STOP \n", + " Activity Timestamp ActivityState \\\n", + "0 sailing empty dredging vessel 1970-01-01 00:00:00.000000 START \n", + "1 sailing empty dredging vessel 1970-01-01 00:32:00.113018 STOP \n", + "2 loading dredging vessel 1970-01-01 00:32:00.113018 START \n", + "3 loading dredging vessel 1970-01-01 00:40:20.113018 STOP \n", + "4 sailing full dredging vessel 1970-01-01 00:40:20.113018 START \n", + ".. ... ... ... \n", + "67 loading dredging vessel 1970-01-01 10:03:01.770622 STOP \n", + "68 sailing full dredging vessel 1970-01-01 10:03:01.770622 START \n", + "69 sailing full dredging vessel 1970-01-01 10:32:07.327912 STOP \n", + "70 unloading dredging vessel 1970-01-01 10:32:07.327912 START \n", + "71 unloading dredging vessel 1970-01-01 10:35:27.327912 STOP \n", "\n", - " geometry container level \n", - "0 POINT (3.637610458072877 52.10701582514347) 5 \n", - "1 POINT (4.062705498083785 51.95909715255291) 5 \n", - "2 POINT (4.062705498083785 51.95909715255291) 5 \n", - "3 POINT (4.062705498083785 51.95909715255291) 0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 0 \n", - "5 POINT (3.637610458072877 52.10701582514347) 0 " + " geometry container level \n", + "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + ".. ... ... \n", + "67 POINT (4.062705498083785 51.95909715255291) 5.0 \n", + "68 POINT (4.062705498083785 51.95909715255291) 5.0 \n", + "69 POINT (4.1795229742823 52.11590591837503) 5.0 \n", + "70 POINT (4.1795229742823 52.11590591837503) 5.0 \n", + "71 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "\n", + "[72 rows x 5 columns]" ] }, "metadata": {}, @@ -620,13 +807,14 @@ } ], "source": [ - "display(openclsim.plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" + "# Inspect dredging vessel log\n", + "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" ] }, { "cell_type": "code", - "execution_count": 17, - "id": "bd8a22b8", + "execution_count": 16, + "id": "7a12e080", "metadata": {}, "outputs": [ { @@ -660,125 +848,72 @@ " \n", " \n", " 0\n", - " sailing empty dredging vessel\n", - " 1970-01-01 00:00:00\n", + " sailing full seagoing vessel\n", + " 1970-01-01 00:03:20.000000\n", " START\n", - " POINT (4.1795229742823 52.11590591837503)\n", - " 0.0\n", + " POINT (3.637610458072877 52.10701582514347)\n", + " 5\n", " \n", " \n", " 1\n", - " sailing empty dredging vessel\n", - " 1970-01-01 00:03:20\n", + " sailing full seagoing vessel\n", + " 1970-01-01 00:38:13.474629\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 0.0\n", + " 5\n", " \n", " \n", " 2\n", - " loading dredging vessel\n", - " 1970-01-01 00:03:20\n", + " unloading seagoing vessel\n", + " 1970-01-01 00:40:20.113018\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 0.0\n", + " 5\n", " \n", " \n", " 3\n", - " loading dredging vessel\n", - " 1970-01-01 00:11:40\n", + " unloading seagoing vessel\n", + " 1970-01-01 00:45:20.113018\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 10.0\n", + " 0\n", " \n", " \n", " 4\n", - " sailing full dredging vessel\n", - " 1970-01-01 00:11:40\n", - " START\n", - " POINT (4.062705498083785 51.95909715255291)\n", - " 10.0\n", - " \n", - " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 67\n", - " loading dredging vessel\n", - " 1970-01-01 02:38:20\n", - " STOP\n", - " POINT (4.062705498083785 51.95909715255291)\n", - " 5.0\n", - " \n", - " \n", - " 68\n", - " sailing full dredging vessel\n", - " 1970-01-01 02:38:20\n", + " sailing empty seagoing vessel\n", + " 1970-01-01 00:45:20.113018\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", - " 5.0\n", - " \n", - " \n", - " 69\n", - " sailing full dredging vessel\n", - " 1970-01-01 02:41:40\n", - " STOP\n", - " POINT (4.1795229742823 52.11590591837503)\n", - " 5.0\n", - " \n", - " \n", - " 70\n", - " unloading dredging vessel\n", - " 1970-01-01 02:41:40\n", - " START\n", - " POINT (4.1795229742823 52.11590591837503)\n", - " 5.0\n", + " 0\n", " \n", " \n", - " 71\n", - " unloading dredging vessel\n", - " 1970-01-01 02:45:00\n", + " 5\n", + " sailing empty seagoing vessel\n", + " 1970-01-01 01:22:33.152622\n", " STOP\n", - " POINT (4.1795229742823 52.11590591837503)\n", - " 0.0\n", + " POINT (3.637610458072877 52.10701582514347)\n", + " 0\n", " \n", " \n", "\n", - "

72 rows × 5 columns

\n", "" ], "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 sailing empty dredging vessel 1970-01-01 00:00:00 START \n", - "1 sailing empty dredging vessel 1970-01-01 00:03:20 STOP \n", - "2 loading dredging vessel 1970-01-01 00:03:20 START \n", - "3 loading dredging vessel 1970-01-01 00:11:40 STOP \n", - "4 sailing full dredging vessel 1970-01-01 00:11:40 START \n", - ".. ... ... ... \n", - "67 loading dredging vessel 1970-01-01 02:38:20 STOP \n", - "68 sailing full dredging vessel 1970-01-01 02:38:20 START \n", - "69 sailing full dredging vessel 1970-01-01 02:41:40 STOP \n", - "70 unloading dredging vessel 1970-01-01 02:41:40 START \n", - "71 unloading dredging vessel 1970-01-01 02:45:00 STOP \n", + " Activity Timestamp ActivityState \\\n", + "0 sailing full seagoing vessel 1970-01-01 00:03:20.000000 START \n", + "1 sailing full seagoing vessel 1970-01-01 00:38:13.474629 STOP \n", + "2 unloading seagoing vessel 1970-01-01 00:40:20.113018 START \n", + "3 unloading seagoing vessel 1970-01-01 00:45:20.113018 STOP \n", + "4 sailing empty seagoing vessel 1970-01-01 00:45:20.113018 START \n", + "5 sailing empty seagoing vessel 1970-01-01 01:22:33.152622 STOP \n", "\n", - " geometry container level \n", - "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - ".. ... ... \n", - "67 POINT (4.062705498083785 51.95909715255291) 5.0 \n", - "68 POINT (4.062705498083785 51.95909715255291) 5.0 \n", - "69 POINT (4.1795229742823 52.11590591837503) 5.0 \n", - "70 POINT (4.1795229742823 52.11590591837503) 5.0 \n", - "71 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "\n", - "[72 rows x 5 columns]" + " geometry container level \n", + "0 POINT (3.637610458072877 52.10701582514347) 5 \n", + "1 POINT (4.062705498083785 51.95909715255291) 5 \n", + "2 POINT (4.062705498083785 51.95909715255291) 5 \n", + "3 POINT (4.062705498083785 51.95909715255291) 0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 0 \n", + "5 POINT (3.637610458072877 52.10701582514347) 0 " ] }, "metadata": {}, @@ -786,13 +921,23 @@ } ], "source": [ - "display(openclsim.plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" + "# Inspect seagoing vessel log\n", + "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "890cf974", + "metadata": {}, + "source": [ + "##### 5.2. Visualise gantt chart" ] }, { "cell_type": "code", - "execution_count": 18, - "id": "8f63fc97", + "execution_count": 17, + "id": "a142a639", "metadata": {}, "outputs": [ { @@ -832,58 +977,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(98,137,199)", + "color": "rgb(201,14,28)", "width": 10 }, "mode": "lines", - "name": "loading dredging vessel", + "name": "sailing full dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:03:20", - "1970-01-01T00:03:20", - "1970-01-01T00:11:40", - "1970-01-01T00:11:40", - "1970-01-01T00:11:40", - "1970-01-01T00:21:40", - "1970-01-01T00:21:40", - "1970-01-01T00:30:00", - "1970-01-01T00:30:00", - "1970-01-01T00:30:00", - "1970-01-01T00:40:00", - "1970-01-01T00:40:00", - "1970-01-01T00:48:20", - "1970-01-01T00:48:20", - "1970-01-01T00:48:20", - "1970-01-01T00:58:20", - "1970-01-01T00:58:20", - "1970-01-01T01:06:40", - "1970-01-01T01:06:40", - "1970-01-01T01:06:40", - "1970-01-01T01:16:40", - "1970-01-01T01:16:40", - "1970-01-01T01:25:00", - "1970-01-01T01:25:00", - "1970-01-01T01:25:00", - "1970-01-01T01:35:00", - "1970-01-01T01:35:00", - "1970-01-01T01:43:20", - "1970-01-01T01:43:20", - "1970-01-01T01:43:20", - "1970-01-01T01:53:20", - "1970-01-01T01:53:20", - "1970-01-01T02:01:40", - "1970-01-01T02:01:40", - "1970-01-01T02:01:40", - "1970-01-01T02:11:40", - "1970-01-01T02:11:40", - "1970-01-01T02:20:00", - "1970-01-01T02:20:00", - "1970-01-01T02:20:00", - "1970-01-01T02:30:00", - "1970-01-01T02:30:00", - "1970-01-01T02:38:20", - "1970-01-01T02:38:20", - "1970-01-01T02:38:20" + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912" ], "y": [ "dredging vessel", @@ -937,58 +1082,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(134,173,235)", + "color": "rgb(237,50,64)", "width": 10 }, "mode": "lines", - "name": "sailing empty dredging vessel", + "name": "loading dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:03:20", - "1970-01-01T00:03:20", - "1970-01-01T00:03:20", - "1970-01-01T00:18:20", - "1970-01-01T00:18:20", - "1970-01-01T00:21:40", - "1970-01-01T00:21:40", - "1970-01-01T00:21:40", - "1970-01-01T00:36:40", - "1970-01-01T00:36:40", - "1970-01-01T00:40:00", - "1970-01-01T00:40:00", - "1970-01-01T00:40:00", - "1970-01-01T00:55:00", - "1970-01-01T00:55:00", - "1970-01-01T00:58:20", - "1970-01-01T00:58:20", - "1970-01-01T00:58:20", - "1970-01-01T01:13:20", - "1970-01-01T01:13:20", - "1970-01-01T01:16:40", - "1970-01-01T01:16:40", - "1970-01-01T01:16:40", - "1970-01-01T01:31:40", - "1970-01-01T01:31:40", - "1970-01-01T01:35:00", - "1970-01-01T01:35:00", - "1970-01-01T01:35:00", - "1970-01-01T01:50:00", - "1970-01-01T01:50:00", - "1970-01-01T01:53:20", - "1970-01-01T01:53:20", - "1970-01-01T01:53:20", - "1970-01-01T02:08:20", - "1970-01-01T02:08:20", - "1970-01-01T02:11:40", - "1970-01-01T02:11:40", - "1970-01-01T02:11:40", - "1970-01-01T02:26:40", - "1970-01-01T02:26:40", - "1970-01-01T02:30:00", - "1970-01-01T02:30:00", - "1970-01-01T02:30:00" + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622" ], "y": [ "dredging vessel", @@ -1042,58 +1187,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(170,209,15)", + "color": "rgb(17,86,100)", "width": 10 }, "mode": "lines", "name": "unloading dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:15:00", - "1970-01-01T00:15:00", - "1970-01-01T00:18:20", - "1970-01-01T00:18:20", - "1970-01-01T00:18:20", - "1970-01-01T00:33:20", - "1970-01-01T00:33:20", - "1970-01-01T00:36:40", - "1970-01-01T00:36:40", - "1970-01-01T00:36:40", - "1970-01-01T00:51:40", - "1970-01-01T00:51:40", - "1970-01-01T00:55:00", - "1970-01-01T00:55:00", - "1970-01-01T00:55:00", - "1970-01-01T01:10:00", - "1970-01-01T01:10:00", - "1970-01-01T01:13:20", - "1970-01-01T01:13:20", - "1970-01-01T01:13:20", - "1970-01-01T01:28:20", - "1970-01-01T01:28:20", - "1970-01-01T01:31:40", - "1970-01-01T01:31:40", - "1970-01-01T01:31:40", - "1970-01-01T01:46:40", - "1970-01-01T01:46:40", - "1970-01-01T01:50:00", - "1970-01-01T01:50:00", - "1970-01-01T01:50:00", - "1970-01-01T02:05:00", - "1970-01-01T02:05:00", - "1970-01-01T02:08:20", - "1970-01-01T02:08:20", - "1970-01-01T02:08:20", - "1970-01-01T02:23:20", - "1970-01-01T02:23:20", - "1970-01-01T02:26:40", - "1970-01-01T02:26:40", - "1970-01-01T02:26:40", - "1970-01-01T02:41:40", - "1970-01-01T02:41:40", - "1970-01-01T02:45:00", - "1970-01-01T02:45:00", - "1970-01-01T02:45:00" + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:35:27.327912", + "1970-01-01T10:35:27.327912", + "1970-01-01T10:35:27.327912" ], "y": [ "dredging vessel", @@ -1147,58 +1292,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(206,245,51)", + "color": "rgb(53,122,136)", "width": 10 }, "mode": "lines", - "name": "sailing full dredging vessel", + "name": "sailing empty dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:11:40", - "1970-01-01T00:11:40", - "1970-01-01T00:15:00", - "1970-01-01T00:15:00", - "1970-01-01T00:15:00", - "1970-01-01T00:30:00", - "1970-01-01T00:30:00", - "1970-01-01T00:33:20", - "1970-01-01T00:33:20", - "1970-01-01T00:33:20", - "1970-01-01T00:48:20", - "1970-01-01T00:48:20", - "1970-01-01T00:51:40", - "1970-01-01T00:51:40", - "1970-01-01T00:51:40", - "1970-01-01T01:06:40", - "1970-01-01T01:06:40", - "1970-01-01T01:10:00", - "1970-01-01T01:10:00", - "1970-01-01T01:10:00", - "1970-01-01T01:25:00", - "1970-01-01T01:25:00", - "1970-01-01T01:28:20", - "1970-01-01T01:28:20", - "1970-01-01T01:28:20", - "1970-01-01T01:43:20", - "1970-01-01T01:43:20", - "1970-01-01T01:46:40", - "1970-01-01T01:46:40", - "1970-01-01T01:46:40", - "1970-01-01T02:01:40", - "1970-01-01T02:01:40", - "1970-01-01T02:05:00", - "1970-01-01T02:05:00", - "1970-01-01T02:05:00", - "1970-01-01T02:20:00", - "1970-01-01T02:20:00", - "1970-01-01T02:23:20", - "1970-01-01T02:23:20", - "1970-01-01T02:23:20", - "1970-01-01T02:38:20", - "1970-01-01T02:38:20", - "1970-01-01T02:41:40", - "1970-01-01T02:41:40", - "1970-01-01T02:41:40" + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622" ], "y": [ "dredging vessel", @@ -1252,7 +1397,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(242,25,87)", + "color": "rgb(89,158,172)", "width": 10 }, "mode": "lines", @@ -1261,9 +1406,9 @@ "x": [ "1970-01-01T00:03:20", "1970-01-01T00:03:20", - "1970-01-01T00:06:40", - "1970-01-01T00:06:40", - "1970-01-01T00:06:40" + "1970-01-01T00:38:13.474629", + "1970-01-01T00:38:13.474629", + "1970-01-01T00:38:13.474629" ], "y": [ "seagoing vessel", @@ -1277,18 +1422,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(22,61,123)", + "color": "rgb(125,194,208)", "width": 10 }, "mode": "lines", - "name": "unloading seagoing vessel", + "name": "sailing empty seagoing vessel", "type": "scatter", "x": [ - "1970-01-01T00:11:40", - "1970-01-01T00:11:40", - "1970-01-01T00:16:40", - "1970-01-01T00:16:40", - "1970-01-01T00:16:40" + "1970-01-01T00:45:20.113018", + "1970-01-01T00:45:20.113018", + "1970-01-01T01:22:33.152622", + "1970-01-01T01:22:33.152622", + "1970-01-01T01:22:33.152622" ], "y": [ "seagoing vessel", @@ -1302,18 +1447,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(58,97,159)", + "color": "rgb(161,230,244)", "width": 10 }, "mode": "lines", - "name": "sailing empty seagoing vessel", + "name": "unloading seagoing vessel", "type": "scatter", "x": [ - "1970-01-01T00:16:40", - "1970-01-01T00:16:40", - "1970-01-01T00:20:00", - "1970-01-01T00:20:00", - "1970-01-01T00:20:00" + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:45:20.113018", + "1970-01-01T00:45:20.113018", + "1970-01-01T00:45:20.113018" ], "y": [ "seagoing vessel", @@ -2153,7 +2298,7 @@ "xaxis": { "range": [ "1970-01-01T00:00:00", - "1970-01-01T02:45:00" + "1970-01-01T10:35:27.327912" ], "title": { "font": { @@ -2177,9 +2322,9 @@ } }, "text/html": [ - "
\n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(115,52,173)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(151,88,209)", + "width": 10 + }, + "mode": "lines", + "name": "unloading dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:35:27.327912", + "1970-01-01T10:35:27.327912", + "1970-01-01T10:35:27.327912" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(187,124,245)", + "width": 10 + }, + "mode": "lines", + "name": "loading dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(223,160,25)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty dredging vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(3,196,61)", + "width": 10 + }, + "mode": "lines", + "name": "unloading seagoing vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:45:20.113018", + "1970-01-01T00:45:20.113018", + "1970-01-01T00:45:20.113018" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(39,232,97)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty seagoing vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:45:20.113018", + "1970-01-01T00:45:20.113018", + "1970-01-01T01:22:33.152622", + "1970-01-01T01:22:33.152622", + "1970-01-01T01:22:33.152622" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(75,12,133)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full seagoing vessel", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:38:13.474629", + "1970-01-01T00:38:13.474629", + "1970-01-01T00:38:13.474629" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T10:35:27.327912" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot.get_gantt_chart([vessel01,vessel02], id_map=[activities_dredging_vessel, activities_seagoing_vessel])" + ] + }, + { + "cell_type": "markdown", + "id": "df4b670f", + "metadata": {}, + "source": [ + "##### 5.3. Visualize container volume developments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0d5b563", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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K1/5io455hhJ0vXXX6///u//1uuvv67Zs2frggsuiPwbVq9erbfffjvSEdTVli1bCIAAAEAP+GdIy34dDoCAGKIDCAC683g8vVqKlegyMzO7/b2hoUHXXHONrr/++kNuO3ToUG3atCmm9ZhLq6TwsZbCs3z6Y+7cuZEA6IUXXtDnP//5SODT0NCg4uJiLVy48JCvM0OtH/zgB7rkkkv0j3/8Q6+++qruuusuvfTSS/rSl76kefPmac6cOfrHP/6h119/Xffdd58eeOABfetb31JDQ4POPfdc3X///YfctxluOQFDoAEAiCV/x05gu1dLgRZra4Gjdd0FDABgD8ccc4ySk5O1ZMmSyMcOHDjQo/DmxBNP1IYNG3Tsscce8iclJUVjx45Ve3u7ysrKIl+zceNG1dTURP4+ZswYlZeXq6qqKvKxZcv6v3nFmDFjDrmfntzvJZdconXr1qmsrEx//OMfNXfu3MjnTjzxRFVWViopKemQf+/AgQMjtxs9erS+/e1v6/XXX9eXv/zlyDwkKbyl/bXXXqs///nP+s53vqNf//rXkftev369hg8ffsh9Hxy82RkBEAAAsZQ3TMocLIUC0u5VVlcDB6MDCADsJysrS1deeaVuvvlmvfXWW1q3bp0uv/xyeb1Hf6n+ve99T++//76uu+46rVq1Sps3b9Zf//pXXXfddZLCIcznP/95XXPNNVqyZInKyso0b948paenR+7jrLPO0jHHHKPLLrtMa9as0XvvvReZuWN29fTFt771LT311FN67rnntHnzZt1zzz1as2bNUe9z+PDhOvnkk3XllVcqGAzqv/7rvyKfmz17tmbOnKnzzz9fr7/+urZv3673339ft912m5YvX67m5mZdd911WrhwoT755BO99957WrZsWWTm0Y033qh//etf2rZtm1asWKG333478rn58+erurpaF198sZYtW6YtW7boX//6l6644goFg8E+H4dEQwAEAEAseTySv2MtPcvAEEPVLdWSmAEEAHbzk5/8RKeeeqrOPfdczZ49W6ecckq3uT1HcsIJJ2jRokXatGmTTj31VE2ePFl33nmnSkpKIrd55plnVFJSotNPP11f/vKXdfXVV2vw4MGRz/t8Pr3yyitqaGjQtGnTNG/ePN12222SpLS0tD7/m+bOnatbb71VN910k0488URt27ZNl19+eY/u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zBj95je/6dF9x4vdjvn111+vKVOmKDU19YjnJGvWrNGpp56qtLQ0+f1+/fjHP+7RfceL0455S0uLLr/8ck2YMEFJSUk6//zze3S/B3NFAPT73/9eCxYs0F133aUVK1Zo4sSJmjNnjvbs2RO5TVNTkz7/+c/r+9//fo/vNxgM6pxzzlFbW5vef/99Pffcc3r22Wd15513Rm7T2tqqQYMG6fbbb9fEiROjdr/btm3TOeeco8985jNatWqVbrzxRs2bNy9hXhw78Zj35X7jyYnH/J133tFZZ52lf/7znyorK9NnPvMZnXvuuVq5cmWP648lJx7zzMxMXXfddXrnnXf04Ycf6vbbb9ftt9+uJ554osf1x5ITj7mppqZGl156qT772c/2uO54cPIx37hxo3bv3h35M3jw4B7XH0tOPeYXXnih3nzzTT311FPauHGjXnzxRY0ZM6bH9ceaE4/7z3/+827/x8vLy5Wfn6+vfOUrPa4/lpx4zN977z1deumluvLKK7V+/Xq9/PLLWrp0qa666qoe1x9LTjzmjz32mG699Vb94Ac/0Pr163X33Xdr/vz5+vvf/97j+mPJbsfc9I1vfEMXXXTRYT9XV1enz33ucxo2bJjKysr0k5/8RD/4wQ84X1TsjnkwGFR6erquv/56zZ49u1f3243hAtOnTzfmz58f+XswGDRKSkqM++6775Dbvv3224Yk48CBA0e933/+85+G1+s1KisrIx977LHHjJycHKO1tfWQ259++unGDTfcEJX7/e53v2uMHz++29dddNFFxpw5c456//HgxGPel/uNJ6cfc9O4ceOMu++++6j3Hw9uOeZf+tKXjK997WtHvf94cPIxv+iii4zbb7/duOuuu4yJEyce9b7jxYnHvDd1WsGJx/zVV181cnNzjf379x/1/qzixON+sL/85S+Gx+Mxtm/fftT7jwcnHvOf/OQnxsiRI7t93S9+8QtjyJAhR73/eHDiMZ85c6Zx0003dfu6BQsWGLNmzTrq/ceD3Y55V0c6J3n00UeNAQMGdPs+3/ve94wxY8b06v5jxYnHvKvLLrvMOO+883p1vybHdwC1tbWprKysW0rm9Xo1e/ZsLV68uF/3vXjxYk2YMEGFhYWRj82ZM0d1dXVav359TO938eLFhyR/c+bM6fe/KRqceswTmVuOeSgUUn19vfLz8/v8faPFLcd85cqVev/993X66af3+ftGi5OP+TPPPKOtW7fqrrvu6vP3igUnH3NJmjRpkoqLi3XWWWfpvffe6/P3jCanHvO//e1vmjp1qn784x9ryJAhGj16tG666SY1Nzf3/R8URU497gd76qmnNHv2bA0bNqzP3zdanHrMZ86cqfLycv3zn/+UYRiqqqrSH//4R33hC1/o+z8oSpx6zFtbW5WWltbt69LT07V06VIFAoE+f+9osOMx7+n3Pu2005SSktLte2/cuFEHDhyI6fc+Gqce82hxfAC0b98+BYPBbg+SJBUWFvZ7rX9lZeVh79f8XCzv90i3qaurs/xkyqnHPJG55Zj/9Kc/VUNDgy688MI+f99ocfoxLy0tVWpqqqZOnar58+dr3rx5ff6+0eLUY75582bdcsst+t3vfqekpKQ+f69YcOoxLy4u1uOPP64//elP+tOf/iS/368zzjhDK1as6PP3jRanHvOtW7fq3Xff1bp16/SXv/xFDz30kP74xz/qm9/8Zp+/bzQ59bh3tWvXLr366qsJ8XwuOfeYz5o1S88//7wuuugipaSkqKioSLm5uXrkkUf6/H2jxanHfM6cOXryySdVVlYmwzC0fPlyPfnkkwoEAtq3b1+fv3c02PGYJ/r3PhqnHvNocXwAFC1nn322srKylJWVlVCD85yMYx5/iXzMX3jhBd199936wx/+kDBzOqIhUY/5f/7zHy1fvlyPP/64HnroIb344otWlxQ1iXTMg8GgLrnkEt19990aPXq0pbXEUiIdc0kaM2aMrrnmGk2ZMkUnn3yynn76aZ188skJN/C8PxLtmIdCIXk8Hj3//POaPn26vvCFL+hnP/uZnnvuOcvfuIqmRDvuXT333HPKy8vr8+DQRJVox3zDhg264YYbdOedd6qsrEyvvfaatm/frmuvvdbq0qIm0Y75HXfcobPPPlsnnXSSkpOTdd555+myyy6TFO78cIJEO+Zu4NRjnlhvNcbAwIED5fP5VFVV1e3jVVVVKioq6vH9PPnkk5ETlOTkZElSUVHRIdPEze/Tm/s+WE/ut6io6LD/ppycHKWnp/f5e0eDU495InP6MX/ppZc0b948vfzyy/0behZFTj/mI0aMkCRNmDBBVVVV+sEPfqCLL764z987Gpx4zOvr67V8+XKtXLlS1113naTwC2XDMJSUlKTXX39dZ555Zp+/f3858ZgfyfTp0/Xuu+/2+ftGi1OPeXFxsYYMGaLc3NzIbY477jgZhqGKigqNGjWqz98/Gpx63E2GYejpp5/W17/+9W5LNqzk1GN+3333adasWbr55pslSSeccIIyMzN16qmn6p577lFxcXGfv39/OfWYp6en6+mnn9avfvUrVVVVqbi4WE888YSys7M1aNCgPn/vaLDjMe+JI70Wjcf3PhqnHvNocUYk+ilSUlI0ZcoUvfnmm5GPhUIhvfnmm5o5c2aP72fIkCE69thjdeyxx0bWTc+cOVNr167tNk38jTfeUE5OjsaNG9fnmntyvzNnzuz2bzJv05t/U6w49ZgnMicf8xdffFFXXHGFXnzxRZ1zzjl9/n7R5uRjfrBQKKTW1tY+f99oceIxz8nJ0dq1a7Vq1arIn2uvvVZjxozRqlWrNGPGjD5/72hw4jE/klWrVln6wszk1GM+a9Ys7dq1Sw0NDZHbbNq0SV6vV6WlpX3+3tHi1ONuWrRokT7++GNdeeWVff5+0ebUY97U1HRI14nP55MUDuKs5NRjbkpOTlZpaal8Pp9eeuklffGLX7S8A8iOx7wnZs6cqXfeeafbjKU33nhDY8aM0YABA2L6vY/Gqcc8avo0OtpmXnrpJSM1NdV49tlnjQ0bNhhXX321kZeX12169+7du42VK1cav/71rw1JxjvvvGOsXLnyU3eraG9vN44//njjc5/7nLFq1SrjtddeMwYNGmTceuut3W63cuVKY+XKlcaUKVOMSy65xFi5cqWxfv36ft3v1q1bjYyMDOPmm282PvzwQ+ORRx4xfD6f8dprr/XjSEWPE495X+43npx4zJ9//nkjKSnJeOSRR4zdu3dH/tTU1PTjSEWPE4/5ww8/bPztb38zNm3aZGzatMl48sknjezsbOO2227rx5GKHice84Ml2i5gTjzmDz74oPHKK68YmzdvNtauXWvccMMNhtfrNf7973/340hFjxOPeX19vVFaWmr8v//3/4z169cbixYtMkaNGmXMmzevH0cqupx43E1f+9rXjBkzZvThqMSWE4/5M888YyQlJRmPPvqosWXLFuPdd981pk6dakyfPr0fRyp6nHjMN27caPz2t781Nm3aZCxZssS46KKLjPz8fGPbtm19P1BRZLdjbhiGsXnzZmPlypXGNddcY4wePTpyH+ZOVzU1NUZhYaHx9a9/3Vi3bp3x0ksvGRkZGcavfvWrfhyp6HHiMTcMw1i/fr2xcuVK49xzzzXOOOOMyG16wxUBkGEYxi9/+Utj6NChRkpKijF9+nTjgw8+6Pb5u+66y5B0yJ9nnnnmU+93+/btxtlnn22kp6cbAwcONL7zne8YgUCg220Od7/Dhg3r9/2+/fbbxqRJk4yUlBRj5MiRR6013px4zPtyv/HktGN++umnH/Z+L7vsst4clphy2jH/xS9+YYwfP97IyMgwcnJyjMmTJxuPPvqoEQwGe3VcYslpx/xgiRYAGYbzjvn9999vHHPMMUZaWpqRn59vnHHGGcZbb73Vq2MSa0475oZhGB9++KExe/ZsIz093SgtLTUWLFhgNDU19fiYxIMTj3tNTY2Rnp5uPPHEEz0+DvHkxGP+i1/8whg3bpyRnp5uFBcXG3PnzjUqKip6fExizWnHfMOGDcakSZOM9PR0IycnxzjvvPOMjz76qFfHJNbsdsyPdA7eNVRbvXq1ccoppxipqanGkCFDjP/93//tzSGJOSce82HDhh32Nr3h6SgQAAAAAAAADuX4GUAAAAAAAABuRwAEAAAAAADgcARAAAAAAAAADkcABAAAAAAA4HAEQAAAAAAAAA5HAAQAAAAAAOBwBEAAAAAAAAAORwAEAAAAAADgcARAAAAAAAAADkcABAAAAAAA4HAEQAAAAAAAAA73/wHTESfl5dQJpQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([vessel01, berth, dump])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b380b201", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jB49Wp999tlR8w8ePNh/npmZKUmqrKxs1vceztChQ9W/f3//XTZLlixRZWWlLr74Ykne6U67du1Sampqk9/Jpk2b/L+TqVOnatKkSSooKNB9993X5Hd144036p577tHo0aM1Y8YMrVmzxv/aJ598onfffbfJdfv16ydJTa7R1lh0GAAAAAAQURJjo7X+N2OMfG9zRUdH6+2339ZHH32kt956S4899pjuuOMOFRYWKikpSZL09NNPKy8v75DPSdLSpUs1YcIEzZw5U2PGjJHL5dLChQv10EMPBe8HOgrfVCNJcjgckrxr0bTGhAkTtGDBAt1+++1asGCBzj33XKWmpkqSdu3apczMTL333nuHfK5Tp06SpLvvvluXX365XnvtNb3xxhuaMWOGFi5cqB//+MeaNGmSxowZo9dee01vvfWWZs2apYceekg33HCDdu3apfPOO0/333//Idf2lVEmBHSHTX19vaZPn66ePXsqMTFRxx13nH772982madnWZbuuusuZWZmKjExUQUFBcec+wYAAAAAQLA4HA4lxcW0+cNXXASSc/To0Zo5c6ZWrVqluLg4vfTSS0pPT1dWVpY2btyo448/vsmjZ8+ekqSPPvpI3bt31x133KHhw4erd+/e/sV5ffr27avly5c3ea7xn51Op7KysvThhx82ec+HH36oAQMGBPSzBPK9R3L55Zfr008/VVFRkV588UVNmDDB/9qwYcNUXl6umJiYQ34njbcc79Onj26++Wa99dZbuvDCCzV37lz/a263W9ddd53+9a9/6Ve/+pWefvpp/7XXrVunHj16HHLtDh06tPj30FoB3WFz//3364knntC8efM0cOBArVixQj//+c/lcrl04403SpIeeOABPfroo5o3b5569uyp6dOna8yYMVq/fv0hc7cAAAAAAGiPCgsLtXjxYp1zzjlKS0tTYWGhvv32W/Xv31+SNHPmTN14441yuVw699xzVVNToxUrVmjHjh2aOnWqevfurS1btmjhwoUaMWKEXnvtNb300ktNvuOGG27QNddco+HDh+ukk07S3//+d61Zs0a9evXyv+fWW2/VjBkzdNxxx2no0KGaO3euVq9erfnz57f4Z2vO9x5Ojx49dNJJJ2nixImqr6/Xj370I/9rBQUFys/P1wUXXKAHHnhAffr0UVlZmV577TX9+Mc/1sCBA3XrrbfqoosuUs+ePVVaWqrly5dr/PjxkqQpU6Zo7Nix6tOnj3bs2KF3333X/7uePHmynn76aV122WW67bbblJKSoi+//FILFy7UM88847+rqa0FVNh89NFHOv/88zVu3DhJ3l/m888/r2XLlkny3l3z8MMP684779T5558vSfrLX/6i9PR0vfzyy/rJT34S5PgIuv010tZPpNpd0nFnmk4DAAAAABHJ6XTq/fff18MPPyyPx6Pu3bvroYce0tixYyVJkyZNUlJSkn7/+9/r1ltvVYcOHTRo0CBNmTJFkvSjH/1IN998s66//nrV1NRo3Lhxmj59uu6++27/d0yYMEEbN27ULbfcon379umSSy7RVVdd5f83vORd26W6ulq/+tWvVFlZqQEDBuiVV15R7969W/yzNed7j/bZX/7yl7riiiuUmJjof97hcOj111/XHXfcoZ///Of69ttvlZGRoVNPPVXp6emKjo7W9u3bdcUVV6iiokJdunTRhRdeqJkzZ0ryzhiaPHmySktL5XQ6de655/p31PLdZfTrX/9a55xzjmpqatS9e3ede+65iooyt/RvQLtE3XvvvXrqqaf01ltvqU+fPvrkk090zjnn6A9/+IN/QI477jj/6tE+p512moYOHapHHnnkkGvW1NSopqbG/2ePxyO3280uUaZ89qr0959KaQOkXy41nQYAAAAAjupoO/LgUGeffbYyMjL017/+tV18rwnB2iUqoDtsbr/9dnk8HvXr10/R0dGqr6/X7373O/+8svLycklSenp6k8+lp6f7XzvYrFmz/I0XbCD7wMrdlZ9J+6qlBJfZPAAAAACAFtmzZ4+efPJJjRkzRtHR0Xr++ef1zjvv6O23347I7400Ad3b849//EPz58/XggULtHLlSs2bN08PPvig5s2b1+IA06ZNU3V1tf9RUlLS4mshCDqmS526S7Kk0hWm0wAAAAAAWsg3jejUU09Vbm6uXn31Vf3zn/9UQUFBRH5vpAnoDptbb71Vt99+u38tmkGDBunrr7/WrFmzdOWVVyojI0OSVFFR0WTrq4qKiiZTpBqLj49XfHx8C+MjJNwjpaqvpdLl0vFnmU4DAAAAAGiBxMREvfPOO+3meyNNQHfY7Nmz55AFd6Kjo/17rffs2VMZGRlavHix/3WPx6PCwkLl5+cHIS7ahDvPeyw59oJQAAAAAAAg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jzT5v4WSkhKlpKTo4osvbnZ+EyJxLD788ENdccUVmjhxotatW6cXXnhBy5Yt0zXXXNPs/G0tEsfhiSee0LRp03T33Xdr3bp1mjlzpiZPnqxXX3212flNCLex8Ln66qt16aWXHvY1j8ejc845R927d1dRUZF+//vf6+6777bXf5e1IsjIkSOtyZMn+/9cX19vZWVlWbNmzTrkve+++64lydqxY8cxr/v6669bUVFRVnl5uf+5J554wnI6nVZNTc0h7z/ttNOsm266KSjXve2226yBAwc2+dyll15qjRkz5pjXNykSx6Il17WDSB8LnwEDBlgzZ8485vVNaS/j8OMf/9j66U9/eszrmxTJY3HppZdad955pzVjxgxryJAhx7y2aZE4FoHktItIHIc33njDcrlc1vbt2495PTuJxLE42EsvvWQ5HA5r8+bNx7y+SZE4Fr///e+tXr16Nfnco48+anXr1u2Y1zclEschPz/fuuWWW5p8burUqdbo0aOPeX2Twm0sGjvSfy+aM2eO1blz5ybf8+tf/9rq27dvQNcPpYi5w6a2tlZFRUUqKCjwPxcVFaWCggItXbq0VddeunSpBg0apPT0dP9zY8aMkcfj0bp160J63aVLlzb5mXzvae3PFEqROhbhqL2MRUNDg3bu3KmUlJQWf28otZdxWLVqlT766COddtppLf7eUIvksZg7d642btyoGTNmtPi72lIkj4UkDR06VJmZmTr77LP14Ycftvg7Qy1Sx+GVV17R8OHD9cADD6hbt27q06ePbrnlFu3du7flP1CIRepYHOzZZ59VQUGBunfv3uLvDbVIHYv8/HyVlJTo9ddfl2VZqqio0Isvvqgf/OAHLf+BQihSx6GmpkYJCQlNPpeYmKhly5aprq6uxd8dSuE4Fs397lNPPVVxcXFNvru4uFg7duwI6Xc3V8QUNtu2bVN9fX2TgZak9PT0Vs8bLy8vP+x1fa+F8rpHeo/H47Htf+mI1LEIR+1lLB588EHt2rVLl1xySYu/N5QifRyys7MVHx+v4cOHa/LkyZo0aVKLvzfUInUsNmzYoNtvv11/+9vfFBMT0+LvakuROhaZmZl68skn9c9//lP//Oc/5Xa7dfrpp2vlypUt/t5QitRx2Lhxoz744AN9+umneumll/Twww/rxRdf1C9/+csWf2+oRepYNFZWVqY33njD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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([vessel02, berth, offshore])" ] } ], @@ -395,7 +2262,7 @@ "kernelspec": { "display_name": "myenv", "language": "python", - "name": "myenv" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -408,11 +2275,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" - }, - "vscode": { - "interpreter": { - "hash": "467690b349221dc2aa421ef548b970b1093cce4037f28fe6b032bbac888fe15e" - } } }, "nbformat": 4, diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 24860d42..9d096f49 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -15,7 +15,7 @@ from .access import HasDraught from .access import HasActualWaterLevel from .access import HasLowestAstronomicalTide -from .access import HasManitainedBedLevel +from .access import HasMaintainedBedLevel from .access import HasNavigability __all__ = [ @@ -41,6 +41,6 @@ "HasDraught", "HasActualWaterLevel", "HasLowestAstronomicalTide", - "HasManitainedBedLevel", + "HasMaintainedBedLevel", "HasNavigability", ] diff --git a/src/openclsim/core/access.py b/src/openclsim/core/access.py index 0e50e70c..1b97274c 100644 --- a/src/openclsim/core/access.py +++ b/src/openclsim/core/access.py @@ -49,7 +49,7 @@ def get_LAT(self): return state # Bottom-related factors -class HasManitainedBedLevel(SimpyObject): +class HasMaintainedBedLevel(SimpyObject): def __init__(self, MBL, *args, **kwargs): super().__init__(*args, **kwargs) self.MBL = MBL @@ -75,5 +75,5 @@ def available_water_depth(self): if LAT > AWL: available_water_depth = self.LAT - self.MBL else: - available water depth = self.AWL - self.MBL - return actual_water_depth + available_water_depth = self.AWL - self.MBL + return available_water_depth From cf68b71606126045376a7c9398b9886b4bf788cb Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Thu, 31 Aug 2023 10:40:18 +0200 Subject: [PATCH 069/100] Update modules --- src/openclsim/core/access.py | 5 +- src/openclsim/model/while_access_activity.py | 162 +++++++++++++++++++ 2 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 src/openclsim/model/while_access_activity.py diff --git a/src/openclsim/core/access.py b/src/openclsim/core/access.py index 1b97274c..3c7a9630 100644 --- a/src/openclsim/core/access.py +++ b/src/openclsim/core/access.py @@ -72,8 +72,5 @@ def __init__(self, AWL, LAT, MBL, *args, **kwargs): @property def available_water_depth(self): - if LAT > AWL: - available_water_depth = self.LAT - self.MBL - else: - available_water_depth = self.AWL - self.MBL + available_water_depth = self.AWL - self.MBL return available_water_depth diff --git a/src/openclsim/model/while_access_activity.py b/src/openclsim/model/while_access_activity.py new file mode 100644 index 00000000..217184bb --- /dev/null +++ b/src/openclsim/model/while_access_activity.py @@ -0,0 +1,162 @@ +"""While activity for the simulation.""" + +import openclsim.core as core + +from .base_activities import GenericActivity, RegisterSubProcesses +from .helpers import register_processes + + +class ConditionProcessMixin: + """Mixin for the condition process.""" + + def main_process_function(self, activity_log, env): + start_time = env.now + args_data = { + "env": env, + "activity_log": activity_log, + "activity": self, + } + yield from self.pre_process(args_data) + + start_while = env.now + + activity_log.log_entry_v1( + t=env.now, + activity_id=activity_log.id, + activity_state=core.LogState.START, + ) + + static_condition_event = self.parse_expression(self.condition_event) + repetitions = 1 + maintained_water_level = 10 + while True: + self.start_sequence.succeed() + for sub_process in self.sub_processes: + activity_log.log_entry_v1( + t=env.now, + activity_id=activity_log.id, + activity_state=core.LogState.START, + activity_label={ + "type": "subprocess", + "ref": sub_process.id, + }, + ) + + stop_event = self.parse_expression( + [ + { + "type": "activity", + "state": "done", + "accessible": False, + "name": sub_process.name, + } + ] + ) + yield stop_event + + activity_log.log_entry_v1( + t=env.now, + activity_id=activity_log.id, + activity_state=core.LogState.STOP, + activity_label={ + "type": "subprocess", + "ref": sub_process.id, + }, + ) + + if available_water_level > float(input(maintained_water_level)): + self.register_processes() + + register_processes(self.sub_processes) + else: + print("the port is not accessible") + + # We check both the static and reactive event. If a event is processed + # and after that defused the event is overwritten and not longer reactive. + # Since we cannot defuse simpy events we have to use this workaround. + + if ( + repetitions >= self.max_iterations + or static_condition_event.processed is True + or self.parse_expression(self.condition_event).processed is True + ): + break + else: + repetitions += 1 + + # Reset the sequential start events of the subprocesses + self.register_subprocesses() + + # Re-add the activities to the simpy environment + register_processes(self.sub_processes) + activity_log.log_entry_v1( + t=env.now, + activity_id=activity_log.id, + activity_state=core.LogState.STOP, + ) + + args_data["start_preprocessing"] = start_time + args_data["start_activity"] = start_while + yield from self.post_process(**args_data) + + +class WhileAccessActivity(GenericActivity, ConditionProcessMixin, RegisterSubProcesses): + """ + Activity for executing multiple activities in a dedicated order within a simulation. + + The while activity is a structural activity, which does not require specific + resources. + + sub_processes + the sub_processes which is executed in sequence in every iteration + condition_event + a condition event provided in the expression language which will stop the + iteration as soon as the event is fullfilled. + start_event + the activity will start as soon as this event is processed + by default will be to start immediately + """ + + def __init__(self, sub_processes, condition_event, show=False, *args, **kwargs): + super().__init__(*args, **kwargs) + """Initialization""" + self.print = show + self.sub_processes = sub_processes + + self.condition_event = condition_event + self.max_iterations = 1_000_000 + + self.register_subprocesses = self.register_sequential_subprocesses + self.register_subprocesses() + + +class RepeatAccessActivity( + GenericActivity, ConditionProcessMixin, RegisterSubProcesses +): + """ + Activity for executing multiple activities in a dedicated order within a simulation. + + Parameters + ---------- + sub_processes + the sub_processes which is executed in sequence in every iteration + repetitions + Number of times the subprocess is repeated + start_event + the activity will start as soon as this event is processed + by default will be to start immediately + """ + + def __init__(self, sub_processes, repetitions: int, show=False, *args, **kwargs): + super().__init__(*args, **kwargs) + """Initialization""" + + self.print = show + self.sub_processes = sub_processes + self.max_iterations = repetitions + self.condition_event = [ + {"type": "activity", "state": "done", "accessible": False, "name": self.name} + ] + + self.register_subprocesses = self.register_sequential_subprocesses + self.register_subprocesses() From 857add512a31355d4f8405fcd51c87c856b48020 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Thu, 31 Aug 2023 10:55:26 +0200 Subject: [PATCH 070/100] add depth plugin from feature/depth_plugin branch --- src/openclsim/plugins/depth.py | 217 +++++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 src/openclsim/plugins/depth.py diff --git a/src/openclsim/plugins/depth.py b/src/openclsim/plugins/depth.py new file mode 100644 index 00000000..850632a8 --- /dev/null +++ b/src/openclsim/plugins/depth.py @@ -0,0 +1,217 @@ +"""Directory for the depth plugin.""" + +import numpy as np + +import openclsim.model as model + + +class DepthCriterion: + """ + Used to add limits to vessels (and therefore acitivities). + + Parameters + ---------- + condition + Column of the climate table (containing minimum depths along a route) + window_length : minutes + Length of the window in minutes (should be as long as one trip) + window_delay : minutes + Delay of the window compared to the start of the activity + maximum + maximal value of the condition + minimum + minimum value of the condition (should be draught + UKC + safety) + + before loading this plugin should check a predetermined time window in the df + for the expected minimum water depth + + then based on that water depth and accounting for a UKC and a minimum buffer + the vessel should adjust its load so that it can make the trip + + additional functionality + - if the water depth is too shallow (below minimum cargo limit) the vessel should passivate + - if priority vessels are dorment other less efficient vessels can activate + """ + + def __init__( + self, + name: str, + condition: str, + window_length: float, + maximum: float = None, + minimum: float = None, + window_delay: float = 0, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + """Initialization""" + self.name = name + self.condition = condition + + try: + assert (maximum is not None) or (minimum is not None) + if minimum is not None: + assert maximum is None + if maximum is not None: + assert minimum is None + except Exception as e: + raise AssertionError( + "One and only one of the parameters minimum or maximum can be " + f"defined (error message: {e})." + ) + + self.minimum = minimum + self.maximum = maximum + + self.window_length = window_length + self.window_delay = window_delay + + +class HasDepthPluginActivity: + """Mixin for Activity to initialize DepthPluginActivity.""" + + def __init__(self, depth_criteria, depth_df, *args, **kwargs): + super().__init__(*args, **kwargs) + + if ( + depth_criteria is not None + and depth_df is not None + and isinstance(self, model.PluginActivity) + ): + + self.depth_data = depth_df + + depth_plugin = DepthPluginActivity( + depth_criteria=depth_criteria, depth_df=self.depth_data + ) + self.register_plugin(plugin=depth_plugin, priority=2) + + +class DepthPluginActivity(model.AbstractPluginClass): + """Mixin for ShiftAmountActivity to initialize TestPluginShiftAmountActivity.""" + + def __init__(self, depth_criteria=None, depth_df=None): + assert isinstance(depth_criteria, DepthCriterion) + self.depth_criteria = depth_criteria + self.depth_df = depth_df + + def pre_process(self, env, activity_log, activity, *args, **kwargs): + if self.depth_criteria is not None: + t = float(env.now) + determined_range = self.check_constraint(start_time=t) + + if not isinstance(determined_range, list): + raise AssertionError + + elif t < determined_range[0]: + activity_label = {"type": "plugin", "ref": "waiting on depth"} + waiting = determined_range[0] - t + return activity.delay_processing( + env, activity_label, activity_log, waiting + ) + else: + return {} + else: + return {} + + def check_constraint(self, start_time): + res = self.process_data(self.depth_criteria) + windows = np.array(res["windows"]) + ts_start = res["dataset_start"] + ts_stop = res["dataset_stop"] + + filter_windows = windows[windows[:, 1] >= start_time] + i = 0 + while len(filter_windows) < 1 and i < 10: + dt = i * (ts_stop - ts_start) + filter_windows = windows[windows[:, 1] >= start_time - dt] + i = i + 1 + + return list(filter_windows[0]) + + def process_data(self, criterion) -> None: + + col = criterion.condition + orig_data = self.depth_df.copy() + + # get start and stop date of the data set + ts_start = min(orig_data["ts"]) + ts_stop = max(orig_data["ts"]) + + data = orig_data.copy() + data["ts"] = data["ts"] + data["cur"] = True + data["prev_ts"] = data.ts.shift(1) + + if criterion.maximum is not None: + threshold = {col: criterion.maximum} + + if orig_data[col].max() < threshold[col]: + return { + "dataset_start": ts_start, + "dataset_stop": ts_stop, + "windows": [[ts_start, ts_stop]], + } + + data["cur"] = data["cur"] & (data[col] <= threshold[col]) + data[f"{col}_prev"] = data[col].shift(1) + + data[f"{col}_inter"] = data["ts"] + else: + threshold = {col: criterion.minimum} + + if orig_data[col].min() > threshold[col]: + return { + "dataset_start": ts_start, + "dataset_stop": ts_stop, + "windows": [[ts_start, ts_stop]], + } + + data["cur"] = data["cur"] & (data[col] >= threshold[col]) + data[f"{col}_prev"] = data[col].shift(1) + data[f"{col}_inter"] = data["ts"] + + data["prev"] = data.cur.shift(1) + data = data[1:] + data = data[data.cur ^ data.prev] + data["type"] = "start" + + data[f"{col}_inter"] = data.ts + data2 = data.loc[(data[col] - data[f"{col}_prev"]) != 0] + data2[f"{col}_inter"] = data2.prev_ts + (data2.ts - data2.prev_ts) * ( + threshold[col] - data2[f"{col}_prev"] + ) / (data2[col] - data2[f"{col}_prev"]) + if criterion.maximum is not None: + data.loc[data[col] > threshold[col], "type"] = "end" + else: + data.loc[data[col] < threshold[col], "type"] = "end" + + columns = [f"{col}_inter"] + data["ts_inter"] = np.maximum.reduce(data[columns].values, axis=1) + data["end_inter"] = data.ts_inter.shift(-1) + + if data.iloc[0]["type"] == "end": + data.iloc[0, data.columns.get_loc("type")] = "start" + data.iloc[0, data.columns.get_loc("end_inter")] = data.iloc[0]["ts_inter"] + data.iloc[0, data.columns.get_loc("ts_inter")] = orig_data.iloc[0]["ts"] + if data.iloc[-1]["type"] == "start": + data.iloc[-1, data.columns.get_loc("end_inter")] = orig_data.iloc[-1]["ts"] + + data.rename(columns={"ts_inter": "start_inter"}, inplace=True) + + data = data[data["type"] == "start"][["start_inter", "end_inter"]] + + data = data[data["end_inter"] - data["start_inter"] > criterion.window_length] + data["end_inter"] = ( + data["end_inter"] - criterion.window_length - criterion.window_delay + ) + data["start_inter"] = data["start_inter"] - criterion.window_delay + windows = [list(data.iloc[d]) for d in range(len(data))] + + result = { + "dataset_start": ts_start, + "dataset_stop": ts_stop, + "windows": windows, + } + return result From e9303c6ae9c6d5bdace0f6c7e47d8ce1cf3b450b Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Thu, 31 Aug 2023 11:00:09 +0200 Subject: [PATCH 071/100] load plugins as module variables --- src/openclsim/plugins/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openclsim/plugins/__init__.py b/src/openclsim/plugins/__init__.py index b46aa615..08dd7cb4 100644 --- a/src/openclsim/plugins/__init__.py +++ b/src/openclsim/plugins/__init__.py @@ -2,10 +2,13 @@ from .delay import DelayPlugin, HasDelayPlugin from .weather import HasWeatherPluginActivity, WeatherCriterion +from .depth import HasDepthPluginActivity, DepthCriterion __all__ = [ "HasWeatherPluginActivity", "WeatherCriterion", "HasDelayPlugin", "DelayPlugin", -] + "HasDepthPluginActivity", + "DepthPlugin", +] \ No newline at end of file From e155b2292743133bd75a78615f4bbb1415f789fb Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Thu, 31 Aug 2023 11:01:32 +0200 Subject: [PATCH 072/100] integrating depth plugin --- notebooks/33_Accessibility_Dredging.ipynb | 408 ++++++++++++---------- src/openclsim/core/access.py | 10 +- 2 files changed, 239 insertions(+), 179 deletions(-) diff --git a/notebooks/33_Accessibility_Dredging.ipynb b/notebooks/33_Accessibility_Dredging.ipynb index 16682cc7..bb0b3afa 100644 --- a/notebooks/33_Accessibility_Dredging.ipynb +++ b/notebooks/33_Accessibility_Dredging.ipynb @@ -23,6 +23,12 @@ "\n", "The concept of accessibility is defined based on the picture above. When the available water depth is higher than the required water depth for the seagoing vessel, the vessel can sail through the port. Otherwise, the dredging vessel should start its job and keep the port accessible by dredging a certain amount of sediment.\n", "\n", + "The following variables are used:\n", + "\n", + "```\n", + "AWL: Actual (as in at this moment) Water Level\n", + "```\n", + "\n", "required water depth = draught + safety margin for under keel clearance\n", "\n", "\n", @@ -45,12 +51,13 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 1, "id": "f22b1f5f", "metadata": {}, "outputs": [], "source": [ - "import networkx as nx \n", + "import networkx as nx \n", + "import shapely\n", "import shapely.geometry\n", "import pyproj\n", "\n", @@ -60,6 +67,7 @@ "import simpy\n", "import openclsim.core as core\n", "import openclsim.model as model\n", + "import openclsim.plugins as plugin\n", "import openclsim.plot as plot\n", "import opentnsim\n", "\n", @@ -80,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 2, "id": "0f3edd62", "metadata": {}, "outputs": [], @@ -100,22 +108,10 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 3, "id": "20b9605b", "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "module 'openclsim.core' has no attribute 'HasMaintainedBedLevel'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[102], line 11\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# create a Site object based on desired mixin classes\u001b[39;00m\n\u001b[0;32m 2\u001b[0m Site \u001b[39m=\u001b[39m \u001b[39mtype\u001b[39m(\n\u001b[0;32m 3\u001b[0m \u001b[39m'\u001b[39m\u001b[39mSite\u001b[39m\u001b[39m'\u001b[39m,\n\u001b[0;32m 4\u001b[0m (core\u001b[39m.\u001b[39mIdentifiable,\n\u001b[0;32m 5\u001b[0m core\u001b[39m.\u001b[39mLog,\n\u001b[0;32m 6\u001b[0m core\u001b[39m.\u001b[39mLocatable,\n\u001b[0;32m 7\u001b[0m core\u001b[39m.\u001b[39mHasContainer,\n\u001b[0;32m 8\u001b[0m core\u001b[39m.\u001b[39mHasResource,\n\u001b[0;32m 9\u001b[0m core\u001b[39m.\u001b[39mHasActualWaterLevel,\n\u001b[0;32m 10\u001b[0m core\u001b[39m.\u001b[39mHasLowestAstronomicalTide,\n\u001b[1;32m---> 11\u001b[0m core\u001b[39m.\u001b[39;49mHasMaintainedBedLevel,\n\u001b[0;32m 12\u001b[0m ),\n\u001b[0;32m 13\u001b[0m {},\n\u001b[0;32m 14\u001b[0m )\n\u001b[0;32m 16\u001b[0m \u001b[39m# create a TransportProcessingResource object based on desired mixin classes\u001b[39;00m\n\u001b[0;32m 17\u001b[0m TransportProcessingResource \u001b[39m=\u001b[39m \u001b[39mtype\u001b[39m(\n\u001b[0;32m 18\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mTransportProcessingResource\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 19\u001b[0m (\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 32\u001b[0m {},\n\u001b[0;32m 33\u001b[0m )\n", - "\u001b[1;31mAttributeError\u001b[0m: module 'openclsim.core' has no attribute 'HasMaintainedBedLevel'" - ] - } - ], + "outputs": [], "source": [ "# create a Site object based on desired mixin classes\n", "Site = type(\n", @@ -170,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "62c2dca3", "metadata": {}, "outputs": [], @@ -182,6 +178,10 @@ " \"geometry\": location_offshore,\n", " \"capacity\": 100,\n", " \"level\": 0,\n", + " \"AWL\": -0.13,\n", + " \"LAT\": -0.92,\n", + " \"MBL\": -17\n", + " \n", " }\n", "offshore = Site(**data_offshore)\n", "\n", @@ -192,7 +192,10 @@ " \"geometry\": location_berth,\n", " \"capacity\": 100,\n", " \"level\": 80,\n", - " \"nr_resources\": 1\n", + " \"nr_resources\": 1,\n", + " \"AWL\": -0.13,\n", + " \"LAT\": -0.92,\n", + " \"MBL\": -17\n", " }\n", "berth = Site(**data_berth)\n", "\n", @@ -202,7 +205,10 @@ " \"name\": \"dump\",\n", " \"geometry\": location_dump,\n", " \"capacity\": 100,\n", - " \"level\": 0\n", + " \"level\": 0,\n", + " \"AWL\": -0.13,\n", + " \"LAT\": -0.92,\n", + " \"MBL\": -17\n", " }\n", "dump = Site(**data_dump) " ] @@ -217,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "7bfc8b04", "metadata": {}, "outputs": [], @@ -265,7 +271,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "4d0d0350", "metadata": {}, "outputs": [], @@ -276,10 +282,40 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "4b621a99", + "execution_count": 7, + "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", "metadata": {}, "outputs": [], + "source": [ + "# Define custom activities with Depth Plugin\n", + "ShiftAmountWithDepthActivity = type(\n", + " \"ShiftAmountWithDepthActivity\",\n", + " (\n", + " plugin.HasDepthPluginActivity,\n", + " model.ShiftAmountActivity,\n", + " ),\n", + " {}\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "4b621a99", + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "__init__() missing 2 required positional arguments: 'depth_criteria' and 'depth_df'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [17]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m duration \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m200\u001b[39m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# Specify dredging subprocesses\u001b[39;00m\n\u001b[1;32m 6\u001b[0m dredging_subprocesses \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 7\u001b[0m model\u001b[38;5;241m.\u001b[39mMoveActivity(\n\u001b[1;32m 8\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 9\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing empty dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 10\u001b[0m registry\u001b[38;5;241m=\u001b[39mregistry,\n\u001b[1;32m 11\u001b[0m mover\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 12\u001b[0m destination\u001b[38;5;241m=\u001b[39mberth,\n\u001b[1;32m 13\u001b[0m ),\n\u001b[0;32m---> 14\u001b[0m \u001b[43mShiftAmountWithDepthActivity\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 15\u001b[0m \u001b[43m \u001b[49m\u001b[43menv\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmy_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 16\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mloading dredging vessel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 17\u001b[0m \u001b[43m \u001b[49m\u001b[43mregistry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mregistry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 18\u001b[0m \u001b[43m \u001b[49m\u001b[43mprocessor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvessel01\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 19\u001b[0m \u001b[43m \u001b[49m\u001b[43morigin\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mberth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 20\u001b[0m \u001b[43m \u001b[49m\u001b[43mdestination\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvessel01\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 21\u001b[0m \u001b[43m \u001b[49m\u001b[43mamount\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mamount\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 22\u001b[0m \u001b[43m \u001b[49m\u001b[43mduration\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m50\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mamount\u001b[49m\n\u001b[1;32m 23\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m,\n\u001b[1;32m 24\u001b[0m model\u001b[38;5;241m.\u001b[39mMoveActivity(\n\u001b[1;32m 25\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 26\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing full dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 27\u001b[0m registry\u001b[38;5;241m=\u001b[39mregistry,\n\u001b[1;32m 28\u001b[0m mover\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 29\u001b[0m destination\u001b[38;5;241m=\u001b[39mdump,\n\u001b[1;32m 30\u001b[0m ),\n\u001b[1;32m 31\u001b[0m model\u001b[38;5;241m.\u001b[39mShiftAmountActivity(\n\u001b[1;32m 32\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 33\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munloading dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 34\u001b[0m registry\u001b[38;5;241m=\u001b[39mregistry,\n\u001b[1;32m 35\u001b[0m processor\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 36\u001b[0m origin\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 37\u001b[0m destination\u001b[38;5;241m=\u001b[39mdump,\n\u001b[1;32m 38\u001b[0m amount\u001b[38;5;241m=\u001b[39mamount,\n\u001b[1;32m 39\u001b[0m duration\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m20\u001b[39m\u001b[38;5;241m*\u001b[39mamount\n\u001b[1;32m 40\u001b[0m )\n\u001b[1;32m 41\u001b[0m ]\n\u001b[1;32m 43\u001b[0m \u001b[38;5;66;03m# Define activities of the dredging vessel\u001b[39;00m\n\u001b[1;32m 44\u001b[0m activities_dredging_vessel \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mWhileActivity(\n\u001b[1;32m 45\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 46\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwhile sequential activity dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 61\u001b[0m ]\n\u001b[1;32m 62\u001b[0m )\n", + "\u001b[0;31mTypeError\u001b[0m: __init__() missing 2 required positional arguments: 'depth_criteria' and 'depth_df'" + ] + } + ], "source": [ "# Specify the amount of container and duration of activities\n", "amount = 10\n", @@ -294,7 +330,7 @@ " mover=vessel01,\n", " destination=berth,\n", " ),\n", - " model.ShiftAmountActivity(\n", + " ShiftAmountWithDepthActivity(\n", " env=my_env,\n", " name=\"loading dredging vessel\",\n", " registry=registry,\n", @@ -325,26 +361,29 @@ "\n", "# Define activities of the dredging vessel\n", "activities_dredging_vessel = model.WhileActivity(\n", - " env=my_env,\n", - " name=\"while sequential activity dredging vessel\",\n", - " registry=registry,\n", - " sub_processes=[model.SequentialActivity(\n", - " env=my_env,\n", - " name=f\"sequential activity subcycle dredging vessel\",\n", - " registry=registry,\n", - " sub_processes= dredging_subprocesses\n", - " )],\n", - " condition_event=[{\"type\": \"container\",\n", - " \"concept\": berth,\n", - " \"state\": \"empty\",\n", - " \"id_\":\"default_reservations\"}\n", - " ]\n", - " )" + " env=my_env,\n", + " name=\"while sequential activity dredging vessel\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential activity subcycle dredging vessel\",\n", + " registry=registry,\n", + " sub_processes= dredging_subprocesses\n", + " )],\n", + " condition_event=[\n", + " {\n", + " \"type\": \"container\",\n", + " \"concept\": berth,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\"\n", + " }\n", + " ]\n", + ")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "d272ff48", "metadata": {}, "outputs": [], @@ -391,12 +430,14 @@ " name=\"while sequential activity dredging vessel\",\n", " registry=registry,\n", " sub_processes= seagoing_subprocesses,\n", - " condition_event=[{\"type\": \"container\",\n", - " \"concept\": vessel02,\n", - " \"state\": \"empty\",\n", - " \"id_\":\"default_reservations\",\n", - " }\n", - " ]\n", + " condition_event=[\n", + " {\n", + " \"type\": \"container\",\n", + " \"concept\": vessel02,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\",\n", + " }\n", + " ]\n", " )" ] }, @@ -410,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "a22e6a3f", "metadata": {}, "outputs": [], @@ -424,7 +465,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "67e9ea06", "metadata": {}, "outputs": [ @@ -497,7 +538,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "e96e09e8", "metadata": {}, "outputs": [ @@ -664,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "f920e9e2", "metadata": {}, "outputs": [ @@ -786,7 +827,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "29d1f881", "metadata": {}, "outputs": [ @@ -800,7 +841,7 @@ " require.undef(\"plotly\");\n", " requirejs.config({\n", " paths: {\n", - " 'plotly': ['https://cdn.plot.ly/plotly-2.18.0.min']\n", + " 'plotly': ['https://cdn.plot.ly/plotly-2.12.1.min']\n", " }\n", " });\n", " require(['plotly'], function(Plotly) {\n", @@ -827,7 +868,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(115,52,173)", + "color": "rgb(129,104,109)", "width": 10 }, "mode": "lines", @@ -932,58 +973,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(151,88,209)", + "color": "rgb(165,140,145)", "width": 10 }, "mode": "lines", - "name": "unloading dredging vessel", + "name": "sailing empty dredging vessel", "type": "scatter", "x": [ - "1970-01-01T01:07:00.207200", - "1970-01-01T01:07:00.207200", - "1970-01-01T01:10:20.207200", + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", + "1970-01-01T00:32:00.113018", "1970-01-01T01:10:20.207200", "1970-01-01T01:10:20.207200", - "1970-01-01T02:17:20.414401", - "1970-01-01T02:17:20.414401", - "1970-01-01T02:20:40.414401", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", + "1970-01-01T01:42:20.320219", "1970-01-01T02:20:40.414401", "1970-01-01T02:20:40.414401", - "1970-01-01T03:27:40.621601", - "1970-01-01T03:27:40.621601", - "1970-01-01T03:31:00.621601", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", + "1970-01-01T02:52:40.527419", "1970-01-01T03:31:00.621601", "1970-01-01T03:31:00.621601", - "1970-01-01T04:38:00.828802", - "1970-01-01T04:38:00.828802", - "1970-01-01T04:41:20.828802", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", + "1970-01-01T04:03:00.734620", "1970-01-01T04:41:20.828802", "1970-01-01T04:41:20.828802", - "1970-01-01T05:48:21.036002", - "1970-01-01T05:48:21.036002", - "1970-01-01T05:51:41.036002", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", + "1970-01-01T05:13:20.941820", "1970-01-01T05:51:41.036002", "1970-01-01T05:51:41.036002", - "1970-01-01T06:58:41.243203", - "1970-01-01T06:58:41.243203", - "1970-01-01T07:02:01.243203", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", + "1970-01-01T06:23:41.149021", "1970-01-01T07:02:01.243203", "1970-01-01T07:02:01.243203", - "1970-01-01T08:09:01.450403", - "1970-01-01T08:09:01.450403", - "1970-01-01T08:12:21.450403", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", + "1970-01-01T07:34:01.356221", "1970-01-01T08:12:21.450403", "1970-01-01T08:12:21.450403", - "1970-01-01T09:19:21.657604", - "1970-01-01T09:19:21.657604", - "1970-01-01T09:22:41.657604", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", + "1970-01-01T08:44:21.563422", "1970-01-01T09:22:41.657604", "1970-01-01T09:22:41.657604", - "1970-01-01T10:32:07.327912", - "1970-01-01T10:32:07.327912", - "1970-01-01T10:35:27.327912", - "1970-01-01T10:35:27.327912", - "1970-01-01T10:35:27.327912" + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622", + "1970-01-01T09:54:41.770622" ], "y": [ "dredging vessel", @@ -1037,58 +1078,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(187,124,245)", + "color": "rgb(201,176,181)", "width": 10 }, "mode": "lines", - "name": "loading dredging vessel", + "name": "unloading dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:32:00.113018", - "1970-01-01T00:32:00.113018", - "1970-01-01T00:40:20.113018", - "1970-01-01T00:40:20.113018", - "1970-01-01T00:40:20.113018", - "1970-01-01T01:42:20.320219", - "1970-01-01T01:42:20.320219", - "1970-01-01T01:50:40.320219", - "1970-01-01T01:50:40.320219", - "1970-01-01T01:50:40.320219", - "1970-01-01T02:52:40.527419", - "1970-01-01T02:52:40.527419", - "1970-01-01T03:01:00.527419", - "1970-01-01T03:01:00.527419", - "1970-01-01T03:01:00.527419", - "1970-01-01T04:03:00.734620", - "1970-01-01T04:03:00.734620", - "1970-01-01T04:11:20.734620", - "1970-01-01T04:11:20.734620", - "1970-01-01T04:11:20.734620", - "1970-01-01T05:13:20.941820", - "1970-01-01T05:13:20.941820", - "1970-01-01T05:21:40.941820", - "1970-01-01T05:21:40.941820", - "1970-01-01T05:21:40.941820", - "1970-01-01T06:23:41.149021", - "1970-01-01T06:23:41.149021", - "1970-01-01T06:32:01.149021", - "1970-01-01T06:32:01.149021", - "1970-01-01T06:32:01.149021", - "1970-01-01T07:34:01.356221", - "1970-01-01T07:34:01.356221", - "1970-01-01T07:42:21.356221", - "1970-01-01T07:42:21.356221", - "1970-01-01T07:42:21.356221", - "1970-01-01T08:44:21.563422", - "1970-01-01T08:44:21.563422", - "1970-01-01T08:52:41.563422", - "1970-01-01T08:52:41.563422", - "1970-01-01T08:52:41.563422", - "1970-01-01T09:54:41.770622", - "1970-01-01T09:54:41.770622", - "1970-01-01T10:03:01.770622", - "1970-01-01T10:03:01.770622", - "1970-01-01T10:03:01.770622" + "1970-01-01T01:07:00.207200", + "1970-01-01T01:07:00.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T01:10:20.207200", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:17:20.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T02:20:40.414401", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:27:40.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T03:31:00.621601", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:38:00.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T04:41:20.828802", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:48:21.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T05:51:41.036002", + "1970-01-01T06:58:41.243203", + "1970-01-01T06:58:41.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T07:02:01.243203", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:09:01.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T08:12:21.450403", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:19:21.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T09:22:41.657604", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:32:07.327912", + "1970-01-01T10:35:27.327912", + "1970-01-01T10:35:27.327912", + "1970-01-01T10:35:27.327912" ], "y": [ "dredging vessel", @@ -1142,58 +1183,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(223,160,25)", + "color": "rgb(237,212,217)", "width": 10 }, "mode": "lines", - "name": "sailing empty dredging vessel", + "name": "loading dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:32:00.113018", "1970-01-01T00:32:00.113018", "1970-01-01T00:32:00.113018", - "1970-01-01T01:10:20.207200", - "1970-01-01T01:10:20.207200", - "1970-01-01T01:42:20.320219", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", + "1970-01-01T00:40:20.113018", "1970-01-01T01:42:20.320219", "1970-01-01T01:42:20.320219", - "1970-01-01T02:20:40.414401", - "1970-01-01T02:20:40.414401", - "1970-01-01T02:52:40.527419", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", + "1970-01-01T01:50:40.320219", "1970-01-01T02:52:40.527419", "1970-01-01T02:52:40.527419", - "1970-01-01T03:31:00.621601", - "1970-01-01T03:31:00.621601", - "1970-01-01T04:03:00.734620", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", + "1970-01-01T03:01:00.527419", "1970-01-01T04:03:00.734620", "1970-01-01T04:03:00.734620", - "1970-01-01T04:41:20.828802", - "1970-01-01T04:41:20.828802", - "1970-01-01T05:13:20.941820", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", + "1970-01-01T04:11:20.734620", "1970-01-01T05:13:20.941820", "1970-01-01T05:13:20.941820", - "1970-01-01T05:51:41.036002", - "1970-01-01T05:51:41.036002", - "1970-01-01T06:23:41.149021", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", + "1970-01-01T05:21:40.941820", "1970-01-01T06:23:41.149021", "1970-01-01T06:23:41.149021", - "1970-01-01T07:02:01.243203", - "1970-01-01T07:02:01.243203", - "1970-01-01T07:34:01.356221", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", + "1970-01-01T06:32:01.149021", "1970-01-01T07:34:01.356221", "1970-01-01T07:34:01.356221", - "1970-01-01T08:12:21.450403", - "1970-01-01T08:12:21.450403", - "1970-01-01T08:44:21.563422", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", + "1970-01-01T07:42:21.356221", "1970-01-01T08:44:21.563422", "1970-01-01T08:44:21.563422", - "1970-01-01T09:22:41.657604", - "1970-01-01T09:22:41.657604", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", + "1970-01-01T08:52:41.563422", "1970-01-01T09:54:41.770622", "1970-01-01T09:54:41.770622", - "1970-01-01T09:54:41.770622" + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622", + "1970-01-01T10:03:01.770622" ], "y": [ "dredging vessel", @@ -1247,7 +1288,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(3,196,61)", + "color": "rgb(17,248,253)", "width": 10 }, "mode": "lines", @@ -1272,7 +1313,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(39,232,97)", + "color": "rgb(53,28,33)", "width": 10 }, "mode": "lines", @@ -1297,7 +1338,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(75,12,133)", + "color": "rgb(89,64,69)", "width": 10 }, "mode": "lines", @@ -1320,6 +1361,7 @@ } ], "layout": { + "autosize": true, "hovermode": "closest", "legend": { "orientation": "h", @@ -2157,9 +2199,15 @@ "size": 18 }, "text": "Time" - } + }, + "type": "date" }, "yaxis": { + "autorange": true, + "range": [ + -0.05555555555555556, + 1.0555555555555556 + ], "title": { "font": { "color": "#7f7f7f", @@ -2167,14 +2215,16 @@ "size": 18 }, "text": "Activities" - } + }, + "type": "category" } } }, + "image/png": "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", "text/html": [ - "
" ] }, "metadata": {}, @@ -884,21 +3996,46 @@ } ], "source": [ - "# Inspect seagoing vessel log\n", - "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" - ] - }, - { - "cell_type": "markdown", - "id": "3a8db3b7", - "metadata": {}, - "source": [ - "##### 5.2. Visualize gantt chart" + "res = plot.get_gantt_chart([vessel01, vessel02], y_scale=\"numbers\", static=True, id_map=[activities_dredging_vessel, activities_seagoing_vessel])\n", + "data = res['data']\n", + "layout = res['layout']\n", + "\n", + "data.append({\n", + " \"name\": \"sailing_crit\",\n", + " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", + "})\n", + "data.append({\n", + " \"name\": \"sailing_crit\",\n", + " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", + "})\n", + "\n", + "\n", + "data.append({\n", + " \"name\": \"Depth\",\n", + " \"x\":depth_df.index,\n", + " \"y\":depth_df[sailing_crit.condition],\n", + "})\n", + "\n", + "\n", + "data.append({\n", + " \"name\": \"loading_crit\",\n", + " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", + "})\n", + "data.append({\n", + " \"name\": \"loading_crit\",\n", + " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", + "})\n", + "\n", + "go.Figure(data=data, layout=layout)" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 299, "id": "29d1f881", "metadata": {}, "outputs": [ @@ -912,7 +4049,7 @@ " require.undef(\"plotly\");\n", " requirejs.config({\n", " paths: {\n", - " 'plotly': ['https://cdn.plot.ly/plotly-2.12.1.min']\n", + " 'plotly': ['https://cdn.plot.ly/plotly-2.18.0.min']\n", " }\n", " });\n", " require(['plotly'], function(Plotly) {\n", @@ -939,58 +4076,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(80,176,107)", + "color": "rgb(64,194,136)", "width": 10 }, "mode": "lines", - "name": "sailing full dredging vessel", + "name": "loading dredging vessel", "type": "scatter", "x": [ - "2023-01-01T01:08:20", - "2023-01-01T01:08:20", - "2023-01-01T01:35:00.094182", - "2023-01-01T01:35:00.094182", - "2023-01-01T01:35:00.094182", - "2023-01-01T02:18:40.207201", - "2023-01-01T02:18:40.207201", - "2023-01-01T02:45:20.301383", - "2023-01-01T02:45:20.301383", - "2023-01-01T02:45:20.301383", - "2023-01-01T03:29:00.414401", - "2023-01-01T03:29:00.414401", - "2023-01-01T03:55:40.508583", - "2023-01-01T03:55:40.508583", - "2023-01-01T03:55:40.508583", - "2023-01-01T04:39:20.621602", - "2023-01-01T04:39:20.621602", - "2023-01-01T05:06:00.715784", - "2023-01-01T05:06:00.715784", - "2023-01-01T05:06:00.715784", - "2023-01-01T05:49:40.828802", - "2023-01-01T05:49:40.828802", - "2023-01-01T06:16:20.922984", - "2023-01-01T06:16:20.922984", - "2023-01-01T06:16:20.922984", - "2023-01-01T07:00:01.036003", - "2023-01-01T07:00:01.036003", - "2023-01-01T07:26:41.130185", - "2023-01-01T07:26:41.130185", - "2023-01-01T07:26:41.130185", - "2023-01-01T08:10:21.243203", - "2023-01-01T08:10:21.243203", - "2023-01-01T08:37:01.337385", - "2023-01-01T08:37:01.337385", - "2023-01-01T08:37:01.337385", - "2023-01-01T09:20:41.450404", - "2023-01-01T09:20:41.450404", - "2023-01-01T09:47:21.544586", - "2023-01-01T09:47:21.544586", - "2023-01-01T09:47:21.544586", - "2023-01-01T10:31:01.657604", - "2023-01-01T10:31:01.657604", - "2023-01-01T11:00:07.214894", - "2023-01-01T11:00:07.214894", - "2023-01-01T11:00:07.214894" + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623" ], "y": [ "dredging vessel", @@ -1044,58 +4181,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(116,212,143)", + "color": "rgb(100,230,172)", "width": 10 }, "mode": "lines", - "name": "loading dredging vessel", + "name": "sailing empty dredging vessel", "type": "scatter", "x": [ "2023-01-01T01:00:00", "2023-01-01T01:00:00", - "2023-01-01T01:08:20", - "2023-01-01T01:08:20", - "2023-01-01T01:08:20", + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", "2023-01-01T02:10:20.207201", "2023-01-01T02:10:20.207201", - "2023-01-01T02:18:40.207201", - "2023-01-01T02:18:40.207201", - "2023-01-01T02:18:40.207201", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", "2023-01-01T03:20:40.414401", "2023-01-01T03:20:40.414401", - "2023-01-01T03:29:00.414401", - "2023-01-01T03:29:00.414401", - "2023-01-01T03:29:00.414401", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", "2023-01-01T04:31:00.621602", "2023-01-01T04:31:00.621602", - "2023-01-01T04:39:20.621602", - "2023-01-01T04:39:20.621602", - "2023-01-01T04:39:20.621602", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", "2023-01-01T05:41:20.828802", "2023-01-01T05:41:20.828802", - "2023-01-01T05:49:40.828802", - "2023-01-01T05:49:40.828802", - "2023-01-01T05:49:40.828802", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", "2023-01-01T06:51:41.036003", "2023-01-01T06:51:41.036003", - "2023-01-01T07:00:01.036003", - "2023-01-01T07:00:01.036003", - "2023-01-01T07:00:01.036003", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", "2023-01-01T08:02:01.243203", "2023-01-01T08:02:01.243203", - "2023-01-01T08:10:21.243203", - "2023-01-01T08:10:21.243203", - "2023-01-01T08:10:21.243203", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", "2023-01-01T09:12:21.450404", "2023-01-01T09:12:21.450404", - "2023-01-01T09:20:41.450404", - "2023-01-01T09:20:41.450404", - "2023-01-01T09:20:41.450404", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", "2023-01-01T10:22:41.657604", "2023-01-01T10:22:41.657604", - "2023-01-01T10:31:01.657604", - "2023-01-01T10:31:01.657604", - "2023-01-01T10:31:01.657604" + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623" ], "y": [ "dredging vessel", @@ -1149,58 +4286,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(152,248,179)", + "color": "rgb(136,10,208)", "width": 10 }, "mode": "lines", - "name": "unloading dredging vessel", + "name": "sailing full dredging vessel", "type": "scatter", "x": [ - "2023-01-01T01:35:00.094182", - "2023-01-01T01:35:00.094182", - "2023-01-01T01:38:20.094182", - "2023-01-01T01:38:20.094182", - "2023-01-01T01:38:20.094182", - "2023-01-01T02:45:20.301383", - "2023-01-01T02:45:20.301383", - "2023-01-01T02:48:40.301383", - "2023-01-01T02:48:40.301383", - "2023-01-01T02:48:40.301383", - "2023-01-01T03:55:40.508583", - "2023-01-01T03:55:40.508583", - "2023-01-01T03:59:00.508583", - "2023-01-01T03:59:00.508583", - "2023-01-01T03:59:00.508583", - "2023-01-01T05:06:00.715784", - "2023-01-01T05:06:00.715784", - "2023-01-01T05:09:20.715784", - "2023-01-01T05:09:20.715784", - "2023-01-01T05:09:20.715784", - "2023-01-01T06:16:20.922984", - "2023-01-01T06:16:20.922984", - "2023-01-01T06:19:40.922984", - "2023-01-01T06:19:40.922984", - "2023-01-01T06:19:40.922984", - "2023-01-01T07:26:41.130185", - "2023-01-01T07:26:41.130185", - "2023-01-01T07:30:01.130185", - "2023-01-01T07:30:01.130185", - "2023-01-01T07:30:01.130185", - "2023-01-01T08:37:01.337385", - "2023-01-01T08:37:01.337385", - "2023-01-01T08:40:21.337385", - "2023-01-01T08:40:21.337385", - "2023-01-01T08:40:21.337385", - "2023-01-01T09:47:21.544586", - "2023-01-01T09:47:21.544586", - "2023-01-01T09:50:41.544586", - "2023-01-01T09:50:41.544586", - "2023-01-01T09:50:41.544586", - "2023-01-01T11:00:07.214894", - "2023-01-01T11:00:07.214894", - "2023-01-01T11:03:27.214894", - "2023-01-01T11:03:27.214894", - "2023-01-01T11:03:27.214894" + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912" ], "y": [ "dredging vessel", @@ -1254,58 +4391,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(188,28,215)", + "color": "rgb(172,46,244)", "width": 10 }, "mode": "lines", - "name": "sailing empty dredging vessel", + "name": "unloading dredging vessel", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T00:32:00.113018", - "1970-01-01T00:32:00.113018", - "1970-01-01T00:32:00.113018", - "2023-01-01T01:38:20.094182", - "2023-01-01T01:38:20.094182", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", "2023-01-01T02:10:20.207201", "2023-01-01T02:10:20.207201", "2023-01-01T02:10:20.207201", - "2023-01-01T02:48:40.301383", - "2023-01-01T02:48:40.301383", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", "2023-01-01T03:20:40.414401", "2023-01-01T03:20:40.414401", "2023-01-01T03:20:40.414401", - "2023-01-01T03:59:00.508583", - "2023-01-01T03:59:00.508583", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", "2023-01-01T04:31:00.621602", "2023-01-01T04:31:00.621602", "2023-01-01T04:31:00.621602", - "2023-01-01T05:09:20.715784", - "2023-01-01T05:09:20.715784", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", "2023-01-01T05:41:20.828802", "2023-01-01T05:41:20.828802", "2023-01-01T05:41:20.828802", - "2023-01-01T06:19:40.922984", - "2023-01-01T06:19:40.922984", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", "2023-01-01T06:51:41.036003", "2023-01-01T06:51:41.036003", "2023-01-01T06:51:41.036003", - "2023-01-01T07:30:01.130185", - "2023-01-01T07:30:01.130185", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", "2023-01-01T08:02:01.243203", "2023-01-01T08:02:01.243203", "2023-01-01T08:02:01.243203", - "2023-01-01T08:40:21.337385", - "2023-01-01T08:40:21.337385", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", "2023-01-01T09:12:21.450404", "2023-01-01T09:12:21.450404", "2023-01-01T09:12:21.450404", - "2023-01-01T09:50:41.544586", - "2023-01-01T09:50:41.544586", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", "2023-01-01T10:22:41.657604", "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604" + "2023-01-01T10:22:41.657604", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:35:27.327912", + "2023-01-01T11:35:27.327912", + "2023-01-01T11:35:27.327912" ], "y": [ "dredging vessel", @@ -1359,18 +4496,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(224,64,251)", + "color": "rgb(208,82,24)", "width": 10 }, "mode": "lines", - "name": "unloading seagoing vessel", + "name": "sailing empty seagoing vessel", "type": "scatter", "x": [ - "2023-01-01T01:08:20", - "2023-01-01T01:08:20", - "2023-01-01T01:13:20", - "2023-01-01T01:13:20", - "2023-01-01T01:13:20" + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T02:22:33.152622", + "2023-01-01T02:22:33.152622", + "2023-01-01T02:22:33.152622" ], "y": [ "seagoing vessel", @@ -1384,18 +4521,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(4,100,31)", + "color": "rgb(244,118,60)", "width": 10 }, "mode": "lines", "name": "sailing full seagoing vessel", "type": "scatter", "x": [ - "1970-01-01T00:03:20", - "1970-01-01T00:03:20", - "1970-01-01T00:38:13.474629", - "1970-01-01T00:38:13.474629", - "1970-01-01T00:38:13.474629" + "2023-01-01T01:00:00", + "2023-01-01T01:00:00", + "2023-01-01T01:34:53.474628", + "2023-01-01T01:34:53.474628", + "2023-01-01T01:34:53.474628" ], "y": [ "seagoing vessel", @@ -1409,18 +4546,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(40,136,67)", + "color": "rgb(24,154,96)", "width": 10 }, "mode": "lines", - "name": "sailing empty seagoing vessel", + "name": "unloading seagoing vessel", "type": "scatter", "x": [ - "2023-01-01T01:13:20", - "2023-01-01T01:13:20", - "2023-01-01T01:50:33.039604", - "2023-01-01T01:50:33.039604", - "2023-01-01T01:50:33.039604" + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019" ], "y": [ "seagoing vessel", @@ -1432,7 +4569,6 @@ } ], "layout": { - "autosize": true, "hovermode": "closest", "legend": { "orientation": "h", @@ -2260,8 +5396,8 @@ }, "xaxis": { "range": [ - "1970-01-01T00:00:00", - "2023-01-01T11:03:27.214894" + "2023-01-01T01:00:00", + "2023-01-01T11:35:27.327912" ], "title": { "font": { @@ -2270,15 +5406,9 @@ "size": 18 }, "text": "Time" - }, - "type": "date" + } }, "yaxis": { - "autorange": true, - "range": [ - -0.05555555555555556, - 1.0555555555555556 - ], "title": { "font": { "color": "#7f7f7f", @@ -2286,16 +5416,14 @@ "size": 18 }, "text": "Activities" - }, - "type": "category" + } } } }, - "image/png": "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", "text/html": [ - "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res = plot.get_gantt_chart([vessel01, vessel02], y_scale=\"numbers\", static=True, id_map=[activities_dredging_vessel, activities_seagoing_vessel])\n", + "data = res['data']\n", + "layout = res['layout']\n", + "\n", + "data.append({\n", + " \"name\": \"sailing_crit\",\n", + " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", + "})\n", + "data.append({\n", + " \"name\": \"sailing_crit\",\n", + " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", + "})\n", + "\n", + "\n", + "data.append({\n", + " \"name\": \"Depth\",\n", + " \"x\":depth_df.index,\n", + " \"y\":depth_df[sailing_crit.condition],\n", + "})\n", + "\n", + "\n", + "data.append({\n", + " \"name\": \"loading_crit\",\n", + " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", + "})\n", + "data.append({\n", + " \"name\": \"loading_crit\",\n", + " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", + " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", + "})\n", + "\n", + "go.Figure(data=data, layout=layout)" + ] + }, + { + "cell_type": "code", + "execution_count": 299, + "id": "29d1f881", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(64,194,136)", + "width": 10 + }, + "mode": "lines", + "name": "loading dredging vessel", + "type": "scatter", + "x": [ + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(100,230,172)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty dredging vessel", + "type": "scatter", + "x": [ + "2023-01-01T01:00:00", + "2023-01-01T01:00:00", + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", + "2023-01-01T02:10:20.207201", + "2023-01-01T02:10:20.207201", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", + "2023-01-01T03:20:40.414401", + "2023-01-01T03:20:40.414401", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", + "2023-01-01T04:31:00.621602", + "2023-01-01T04:31:00.621602", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:41:20.828802", + "2023-01-01T05:41:20.828802", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:51:41.036003", + "2023-01-01T06:51:41.036003", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", + "2023-01-01T08:02:01.243203", + "2023-01-01T08:02:01.243203", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", + "2023-01-01T09:12:21.450404", + "2023-01-01T09:12:21.450404", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", + "2023-01-01T10:22:41.657604", + "2023-01-01T10:22:41.657604", + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(136,10,208)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full dredging vessel", + "type": "scatter", + "x": [ + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(172,46,244)", + "width": 10 + }, + "mode": "lines", + "name": "unloading dredging vessel", + "type": "scatter", + "x": [ + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:10:20.207201", + "2023-01-01T02:10:20.207201", + "2023-01-01T02:10:20.207201", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:20:40.414401", + "2023-01-01T03:20:40.414401", + "2023-01-01T03:20:40.414401", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:31:00.621602", + "2023-01-01T04:31:00.621602", + "2023-01-01T04:31:00.621602", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:41:20.828802", + "2023-01-01T05:41:20.828802", + "2023-01-01T05:41:20.828802", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:51:41.036003", + "2023-01-01T06:51:41.036003", + "2023-01-01T06:51:41.036003", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T08:02:01.243203", + "2023-01-01T08:02:01.243203", + "2023-01-01T08:02:01.243203", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:12:21.450404", + "2023-01-01T09:12:21.450404", + "2023-01-01T09:12:21.450404", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:22:41.657604", + "2023-01-01T10:22:41.657604", + "2023-01-01T10:22:41.657604", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:35:27.327912", + "2023-01-01T11:35:27.327912", + "2023-01-01T11:35:27.327912" + ], + "y": [ + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null, + "dredging vessel", + "dredging vessel", + "dredging vessel", + "dredging vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(208,82,24)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty seagoing vessel", + "type": "scatter", + "x": [ + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T02:22:33.152622", + "2023-01-01T02:22:33.152622", + "2023-01-01T02:22:33.152622" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(244,118,60)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full seagoing vessel", + "type": "scatter", + "x": [ + "2023-01-01T01:00:00", + "2023-01-01T01:00:00", + "2023-01-01T01:34:53.474628", + "2023-01-01T01:34:53.474628", + "2023-01-01T01:34:53.474628" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(24,154,96)", + "width": 10 + }, + "mode": "lines", + "name": "unloading seagoing vessel", + "type": "scatter", + "x": [ + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019" + ], + "y": [ + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + "seagoing vessel", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "2023-01-01T01:00:00", + "2023-01-01T11:35:27.327912" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot.get_gantt_chart(\n", + " [vessel01, vessel02],\n", + " id_map=[activities_dredging_vessel, activities_seagoing_vessel],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "df4b670f", + "metadata": {}, + "source": [ + "##### 5.3. Visualize container volume developments" + ] + }, + { + "cell_type": "code", + "execution_count": 300, + "id": "c0d5b563", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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h1hdERwssgMYA6ABQJLUHAhq7B3/jvv3Xf+DM5WR0vOX2jfddJMWLVqkv/71rxo8eLC+973vafny5QeFJT/96U91xx136M4775Qkbd68WWeddZbuvvtuPfXUU9qzZ4/mz5+v+fPn6+mnn5YkXXbZZdq5c6feeustJScn67rrrtPu3bsj9xkMBnX++edr6NChWrx4serr6/Xtb3+7R3Xfeuutuv/++zVo0CBde+21+vrXv653331XkvTcc8/pnnvu0SOPPKJZs2bpxRdf1P33368RI0Yc8r68Xq8uvvhiPf/88/rf//3fyMefe+45zZo1S8OGDZMkffnLX1Z6erpeeeUV5ebm6le/+pU++9nPauPGjcrPz9ecOXM0efJkPfroo/L5fFq5cqWSk5MlSfPmzVNbW5vefvttZWZmav369crKypIUDpZOP/10XXnllXrggQfU3Nys7373u7rwwgv15ptv9uh42AEBEAAAsZKSKRUdJ+1aFV4GlvtFqyuCg9EBBAD209DQoCeffFK/+93v9NnPflaS9Oyzz6q0tPSg255++undwpkrr7xSc+bMiQwmHjlypH7xi1/o1FNP1aOPPqrt27frlVde0ZIlSzRtWnhZ+pNPPqljjz02ch+vv/66Nm/erIULF6qoqEiSdM899+iMM844Yu333HOPTj31VEnSzTffrHPOOUctLS1KS0vTL3/5S11xxRW6/PLLJUl33HGHXnvtNTU0NBz2/ubMmaP7779f27dv19ChQxUKhfTiiy/qtttukxTudlqyZIl2796t1NRUSeFQ7OWXX9Yf//hHXX311dq+fbtuuukmjRkzJnJMTNu3b9cFF1yg8ePHS5KOOuqoyOceeughTZ48WT/60Y8iH3vqqafk9/u1ceNGjRo16ojHww4IgAAAiKXS6eEAqHyJNI4ACLFDBxAAdJee7NP6H5xpyfftqc2bN6utrU0zZsyIfCw/P1+jR48+6LZTp07t9vdVq1Zp9erV3ZZ1GYahUCikrVu3auPGjUpKStKUKVMinx8zZozy8vIif9+wYYP8fn8k/JGk6dOn96j2CRMmRK4XFxdLCi85Gzp0qDZs2KBvfOMb3W4/ffr0T+2mmTRpko499lg9//zzuvnmm7Vo0SLt3r1bX/7ylyP/3oaGBhUUdP8919zcrM2bN0uSFixYoCuvvFK//e1vNXv2bH35y1/W0UcfLUm67rrr9L//+7967bXXNHv2bF1wwQWRf8OqVav01ltvRTqCutq8eTMBEAAA6AH/DGnpr8MBEBBDdAABQHcej6dXS7ESXWZmZre/NzQ06JprrtF111130G2HDh2qjRs3xrQec2mVFD7WUniWT3/MmTMnEgA9//zzOuussyKBT0NDg4qLi7Vw4cKDvs4Mtb7//e/rkksu0T//+U+98soruvPOO/Xiiy/qi1/8oq688kqdeeaZ+uc//6nXXntN9957r+6//35985vfVENDg84991zdd999B923GW45AUOgAQCIJX/HTmC7VkmBFmtrgaN13QUMAGAPRx99tJKTk7V48eLIx/bv39+j8Ob444/X+vXrdcwxxxz0JyUlRWPGjFF7e7vKysoiX7NhwwbV1NRE/j569GiVl5erqqoq8rGlS/u/ecXo0aMPup+e3O8ll1yitWvXqqysTH/84x81Z86cyOeOP/54VVZWKikp6aB/78CBAyO3GzVqlL71rW/ptdde05e+9KXIPCQpvKX9tddeqz//+c/69re/rV//+teR+163bp2GDx9+0H0fGLzZGQEQAACxlDdMyhwshQLSrpVWVwMHowMIAOwnKytLV1xxhW666Sa9+eabWrt2rS677DJ5vUd+qf7d735X7733nubPn6+VK1dq06ZN+utf/6r58+dLCocwZ511lq655hotXrxYZWVluvLKK5Wenh65jzPOOENHH320Lr30Uq1evVrvvvtuZOaO2dXTF9/85jf15JNP6tlnn9WmTZt09913a/Xq1Ue8z+HDh+vEE0/UFVdcoWAwqP/5n/+JfG727NmaOXOmzj//fL322mvatm2b3nvvPd16661atmyZmpubNX/+fC1cuFCffPKJ3n33XS1dujQy8+iGG27Qv//9b23dulXLly/XW2+9FfncvHnzVF1drYsvvlhLly7V5s2b9e9//1uXX365gsFgn49DoiEAAgAgljweyd+xlp5lYIih6pZqScwAAgC7+clPfqKTTz5Z5557rmbPnq2TTjqp29yew5kwYYIWLVqkjRs36uSTT9bkyZN1xx13qKSkJHKbp59+WiUlJTr11FP1pS99SVdffbUGDx4c+bzP59PLL7+shoYGTZs2TVdeeaVuvfVWSVJaWlqf/01z5szRLbfcohtvvFHHH3+8tm7dqssuu6xH9zln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rLS0NPn9fv34xz/u0X3Hi9OOeUtLiy677DKNHz9eSUlJOv/883t0v/HktGO+cOFCnXfeeSouLlZmZqYmTZqk5557rkf33ZUrAqDf//73WrBgge68804tX75cEydO1Jlnnqndu3dHbtPU1KSzzjpL3/ve93p8v8FgUOecc47a2tr03nvv6dlnn9UzzzyjO+64I3Kb1tZWDRo0SLfddpsmTpxo6f3GkxOP+dtvv60zzjhD//rXv1RWVqbPfOYzOvfcc7VixYoe1x9LTjzmmZmZmj9/vt5++219+OGHuu2223Tbbbfp8ccf73H9seTEY26qqanR3Llz9dnPfrbHdceDk4/5hg0btGvXrsifwYMH97j+WHLqMb/wwgv1xhtv6Mknn9SGDRv0wgsvaPTo0T2uP5aceMx//vOfd/v/XV5ervz8fH35y1/ucf2x5sTj/u6772ru3Lm64oortG7dOr300ktasmSJrrrqqh7XH0tOPOaPPvqobrnlFn3/+9/XunXrdNddd2nevHn6+9//3uP6Y8lux9z09a9/XRdddNEhP1dXV6fPfe5zGjZsmMrKyvSTn/xE3//+9zlfVOyOeTAYVHp6uq677jrNnj27V/cbD0485u+9954mTJigP/3pT1q9erUuv/xyzZ07V//4xz969T1kuMD06dONefPmRf4eDAaNkpIS49577z3otm+99ZYhydi/f/8R7/df//qX4fV6jcrKysjHHn30USMnJ8dobW096Pannnqqcf3111t2v/Hk9GNuGjt2rHHXXXcd8f7jwS3H/Itf/KLx1a9+9Yj3Hw9OPuYXXXSRcdtttxl33nmnMXHixCPed7w48Zj3pk4rOPGYv/LKK0Zubq6xb9++I96fFZx4zA/0l7/8xfB4PMa2bduOeP/x4sTj/pOf/MQ46qijun3dL37xC2PIkCFHvP94cOIxnzlzpnHjjTd2+7oFCxYYs2bNOuL9x4PdjnlXhzsneeSRR4wBAwZ0+z7f/e53jdGjR/fq/mPFice8q0svvdQ477zzenW/seb0Y276/Oc/b1x++eW9un/HdwC1tbWprKysWzLp9Xo1e/Zsvf/++/267/fff1/jx49XYWFh5GNnnnmm6urqtG7duoS733hxyzEPhUKqr69Xfn5+n79vtLjlmK9YsULvvfeeTj311D5/32hx8jF/+umntWXLFt155519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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([vessel01, berth, dump])" + ] + }, + { + "cell_type": "code", + "execution_count": 301, + "id": "b380b201", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABGwAAAJGCAYAAAAOFxM2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABa0klEQVR4nO3deXhU5cH+8XuyJyQzLEImYSYQlU0EgqwRrVsUKT+rFZcqrRtKbXFBqlaqiPS1UldcClo3pO8LYm3ValVcqGKVLYSgLIogIAkhCSBZ2JKQnN8fkxkT1kwyM+fMzPdzXXPNYZZz7uSh1yv3e57nsRmGYQgAAAAAAACWEWN2AAAAAAAAADRHYQMAAAAAAGAxFDYAAAAAAAAWQ2EDAAAAAABgMRQ2AAAAAAAAFkNhAwAAAAAAYDEUNgAAAAAAABYTZ3aAQzU0NKikpERpaWmy2WxmxwEAAAAAAAgIwzBUXV2tzMxMxcQc+x4ayxU2JSUlcrvdZscAAAAAAAAIiqKiIrlcrmN+xnKFTVpamiRPeLvdbnIaAAAAAACAwKiqqpLb7fZ1H8diucLGOw3KbrdT2AAAAAAAgIjTkiVgWHQYAAAAAADAYihsAAAAAAAALIbCBgAAAAAAwGIst4YNAAAAAACtUV9fr7q6OrNjIMolJCQcd8vulqCwAQAAAACENcMwVFpaqoqKCrOjAIqJiVF2drYSEhLadB4KGwAAAABAWPOWNV26dFFKSkqLduABgqGhoUElJSXavn27srKy2vR3kcIGAAAAABC26uvrfWVNp06dzI4DqHPnziopKdHBgwcVHx/f6vOw6DAAAAAAIGx516xJSUkxOQng4Z0KVV9f36bzUNgAAAAAAMIe06BgFYH6u0hhAwAAAAAAYDEUNgAAAAAA4Ii2bNkim82mVatWmR3FVGeffbYmTpwY0muy6DAAAAAAADgit9ut7du364QTTjA7StShsAEAAAAAAEcUGxsrp9NpdoyoxJQoAAAAAABM8I9//EP9+vVTcnKyOnXqpLy8PO3du9f3/osvvqg+ffooKSlJvXv31qxZs5p9//e//7169uyplJQUnXjiiZoyZYpv1yyvBx98UF26dFFaWppuvPFG3XPPPcrJyfG939DQoD/+8Y9yuVxKTExUTk6OFixY4Hv/0ClRn376qWw2mxYuXKjBgwcrJSVFp59+utavX+/XdZtqaGiQy+XSs88+2+z1wsJCxcTE6Pvvv5ckVVRU6MYbb1Tnzp1lt9t17rnn6ssvv/R9/ssvv9Q555yjtLQ02e12DRo0SCtWrJAkff/997rooovUoUMHtWvXTn379tV7773n++6aNWs0atQopaamKj09Xb/61a+0c+fOI+YNFQobAAAAAEBEMQxD+2oPhvxhGEaLM27fvl1XXXWVbrjhBn399df69NNPdemll/rOMXfuXN1///3605/+pK+//loPPfSQpkyZojlz5vjOkZaWpldeeUXr1q3TU089pRdeeEEzZszwvT937lz96U9/0sMPP6yCggJlZWUdVoo89dRTevzxx/XYY4/pq6++0siRI/Wzn/1MGzZsOGb+e++9V48//rhWrFihuLg43XDDDX5dt6mYmBhdddVVmjdvXrPX586dqxEjRqhbt26SpMsvv1zl5eV6//33VVBQoNNOO03nnXeefvjhB0nS2LFj5XK5lJ+fr4KCAt1zzz2Kj4+XJE2YMEE1NTX67LPPtHr1aj388MNKTU2V5CmCzj33XA0cOFArVqzQggULVFZWpiuuuOKYv4Ngsxn+/I0KgaqqKjkcDlVWVsput5sdBwAAAABgYQcOHNDmzZuVnZ2tpKQkSdK+2oM65f4PQp5l3R9HKiWhZSuPrFy5UoMGDdKWLVt8hURTJ598sv7nf/5HV111le+1Bx98UO+9954WL158xHM+9thjmj9/vu+ukuHDh2vw4MH6y1/+4vvMGWecoT179vjumOnatasmTJigP/zhD77PDB06VEOGDNHMmTO1ZcsWZWdnq7CwUDk5Ofr00091zjnn6OOPP9Z5550nSXrvvfc0evRo7d+/X0lJSS267qFWrVql0047TVu2bFFWVpYaGhqUlZWl++67TzfffLM+//xzjR49WuXl5UpMTGz2e7r77rs1fvx42e12PfPMM7r22msPO3///v01ZswYTZ069bD3HnzwQf33v//VBx/8+HemuLhYbrdb69evV8+ePXX22WcrJydHTz755BHzN3Wkv5Ne/nQe3GEDAAAAAECIDRgwQOedd5769eunyy+/XC+88IJ2794tSdq7d6++++47jRs3Tqmpqb7Hgw8+qO+++853jtdee00jRoyQ0+lUamqq7rvvPm3dutX3/vr16zV06NBm123656qqKpWUlGjEiBHNPjNixAh9/fXXx8zfv39/33FGRoYkqby8vEXXPZKcnBz16dPHd5fNokWLVF5erssvv1ySZ7rTnj171KlTp2a/k82bN/t+J5MmTdKNN96ovLw8/fnPf272u7rtttv04IMPasSIEZo6daq++uor33tffvmlPvnkk2bn7d27tyQ1O0eosegwAAAAACCiJMfHat0fR5py3ZaKjY3VRx99pMWLF+vDDz/UM888o3vvvVfLli1TSkqKJOmFF17QsGHDDvueJC1ZskRjx47VtGnTNHLkSDkcDs2fP1+PP/544H6gY/BONZIkm80mybMWTVuMHTtW8+bN0z333KN58+bpwgsvVKdOnSRJe/bsUUZGhj799NPDvte+fXtJ0gMPPKCrr75a7777rt5//31NnTpV8+fP189//nPdeOONGjlypN599119+OGHmj59uh5//HHdeuut2rNnjy666CI9/PDDh53bW0aZwa87bOrr6zVlyhRlZ2crOTlZJ510kv7nf/6n2Tw9wzB0//33KyMjQ8nJycrLyzvu3DcAAAAAAALFZrMpJSEu5A9vceFPzhEjRmjatGkqLCxUQkKC3nzzTaWnpyszM1ObNm3SySef3OyRnZ0tSVq8eLG6deume++9V4MHD1aPHj18i/N69erVS/n5+c1ea/pnu92uzMxMffHFF80+88UXX+iUU07x62fx57pHc/XVV2vNmjUqKCjQP/7xD40dO9b33mmnnabS0lLFxcUd9jtpuuV4z549dccdd+jDDz/UpZdeqtmzZ/vec7vduvnmm/XGG2/od7/7nV544QXfudeuXavu3bsfdu527dq1+vfQVn7dYfPwww/r2Wef1Zw5c9S3b1+tWLFC119/vRwOh2677TZJ0iOPPKKnn35ac+bMUXZ2tqZMmaKRI0dq3bp1h83dAgAAAAAgGi1btkwLFy7UBRdcoC5dumjZsmXasWOH+vTpI0maNm2abrvtNjkcDl144YWqqanRihUrtHv3bk2aNEk9evTQ1q1bNX/+fA0ZMkTvvvuu3nzzzWbXuPXWW3XTTTdp8ODBOv300/Xaa6/pq6++0oknnuj7zF133aWpU6fqpJNOUk5OjmbPnq1Vq1Zp7ty5rf7ZWnLdI+nevbtOP/10jRs3TvX19frZz37mey8vL0+5ubm65JJL9Mgjj6hnz54qKSnRu+++q5///Ofq27ev7rrr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([vessel02, berth, offshore])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From cc17110c11e14966105145a5246a84d368791a09 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Thu, 14 Sep 2023 10:40:34 +0200 Subject: [PATCH 076/100] update access --- src/openclsim/core/__init__.py | 2 ++ src/openclsim/core/access.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 9d096f49..174f586c 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -17,6 +17,7 @@ from .access import HasLowestAstronomicalTide from .access import HasMaintainedBedLevel from .access import HasNavigability +from .access import HasDredging __all__ = [ "basic", @@ -43,4 +44,5 @@ "HasLowestAstronomicalTide", "HasMaintainedBedLevel", "HasNavigability", + "HasDredging", ] diff --git a/src/openclsim/core/access.py b/src/openclsim/core/access.py index 84068d90..7a64ba27 100644 --- a/src/openclsim/core/access.py +++ b/src/openclsim/core/access.py @@ -67,6 +67,7 @@ def get_MBL(self): state.update({"MBL": self.MBL.get_MBL()}) return state + # Determine the navigability of vessels class HasNavigability(SimpyObject): @@ -80,3 +81,13 @@ def __init__(self, AWL, LAT, MBL, *args, **kwargs): def available_water_depth(self): available_water_depth = self.AWL - self.MBL return available_water_depth + + +class HasDredging(SimpyObject): + def __init__(self, ABL, DCL, DBL, *args, **kwargs): + super().__init__(*args, **kwargs) + self.ABL = ABL + self.DCL = DCL + self.DBL = DBL + + From 43a72aa431f903f8746f1ba36523f9be49a3471c Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Thu, 14 Sep 2023 11:01:11 +0200 Subject: [PATCH 077/100] prepare layout for accessibility plugin --- .../33_Accessibility_Dredging_NoTide.ipynb | 309 ++---------------- src/openclsim/plugins/__init__.py | 5 +- src/openclsim/plugins/access.py | 67 ++++ 3 files changed, 93 insertions(+), 288 deletions(-) create mode 100644 src/openclsim/plugins/access.py diff --git a/notebooks/33_Accessibility_Dredging_NoTide.ipynb b/notebooks/33_Accessibility_Dredging_NoTide.ipynb index 3e5c62af..c4602ebf 100644 --- a/notebooks/33_Accessibility_Dredging_NoTide.ipynb +++ b/notebooks/33_Accessibility_Dredging_NoTide.ipynb @@ -304,10 +304,10 @@ " {},\n", ")\n", "\n", - "MoveWithDepthActivity = type(\n", - " \"MoveWithDepthActivity\",\n", + "MoveWithDredgeActivity = type(\n", + " \"MoveWithDredgeActivity\",\n", " (\n", - " plugin.HasDepthPluginActivity,\n", + " plugin.HasDredgePluginActivity,\n", " model.MoveActivity,\n", " ),\n", " {},\n", @@ -316,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "4b621a99", "metadata": {}, "outputs": [], @@ -325,14 +325,20 @@ "amount = 10\n", "duration = 200\n", "\n", + "\n", + "dredge_criteria = plugin.DredgeCriterion(\n", + " name=\"dredge_crit\",\n", + ")\n", + "\n", "# Specify dredging subprocesses\n", "dredging_subprocesses = [\n", - " model.MoveActivity(\n", + " MoveWithDredgeActivity(\n", " env=my_env,\n", " name=\"sailing empty dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=berth,\n", + " dredge_criteria=dredge_criteria,\n", " ),\n", " model.ShiftAmountActivity(\n", " env=my_env,\n", @@ -389,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "d272ff48", "metadata": {}, "outputs": [], @@ -454,7 +460,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "a22e6a3f", "metadata": {}, "outputs": [], @@ -468,7 +474,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "67e9ea06", "metadata": {}, "outputs": [ @@ -541,166 +547,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "e96e09e8", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStategeometrycontainer level
0sailing empty dredging vessel1970-01-01 00:00:00.000000STARTPOINT (4.1795229742823 52.11590591837503)0.0
1sailing empty dredging vessel1970-01-01 00:32:00.113018STOPPOINT (4.062705498083785 51.95909715255291)0.0
2loading dredging vessel1970-01-01 00:32:00.113018STARTPOINT (4.062705498083785 51.95909715255291)0.0
3loading dredging vessel1970-01-01 00:40:20.113018STOPPOINT (4.062705498083785 51.95909715255291)10.0
4sailing full dredging vessel1970-01-01 00:40:20.113018STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
67loading dredging vessel1970-01-01 10:03:01.770622STOPPOINT (4.062705498083785 51.95909715255291)5.0
68sailing full dredging vessel1970-01-01 10:03:01.770622STARTPOINT (4.062705498083785 51.95909715255291)5.0
69sailing full dredging vessel1970-01-01 10:32:07.327912STOPPOINT (4.1795229742823 52.11590591837503)5.0
70unloading dredging vessel1970-01-01 10:32:07.327912STARTPOINT (4.1795229742823 52.11590591837503)5.0
71unloading dredging vessel1970-01-01 10:35:27.327912STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", - "

72 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 sailing empty dredging vessel 1970-01-01 00:00:00.000000 START \n", - "1 sailing empty dredging vessel 1970-01-01 00:32:00.113018 STOP \n", - "2 loading dredging vessel 1970-01-01 00:32:00.113018 START \n", - "3 loading dredging vessel 1970-01-01 00:40:20.113018 STOP \n", - "4 sailing full dredging vessel 1970-01-01 00:40:20.113018 START \n", - ".. ... ... ... \n", - "67 loading dredging vessel 1970-01-01 10:03:01.770622 STOP \n", - "68 sailing full dredging vessel 1970-01-01 10:03:01.770622 START \n", - "69 sailing full dredging vessel 1970-01-01 10:32:07.327912 STOP \n", - "70 unloading dredging vessel 1970-01-01 10:32:07.327912 START \n", - "71 unloading dredging vessel 1970-01-01 10:35:27.327912 STOP \n", - "\n", - " geometry container level \n", - "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - ".. ... ... \n", - "67 POINT (4.062705498083785 51.95909715255291) 5.0 \n", - "68 POINT (4.062705498083785 51.95909715255291) 5.0 \n", - "69 POINT (4.1795229742823 52.11590591837503) 5.0 \n", - "70 POINT (4.1795229742823 52.11590591837503) 5.0 \n", - "71 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "\n", - "[72 rows x 5 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Inspect dredging vessel log\n", "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" @@ -708,113 +558,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "f920e9e2", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStategeometrycontainer level
0sailing full seagoing vessel1970-01-01 00:03:20.000000STARTPOINT (3.637610458072877 52.10701582514347)5
1sailing full seagoing vessel1970-01-01 00:38:13.474629STOPPOINT (4.062705498083785 51.95909715255291)5
2unloading seagoing vessel1970-01-01 00:40:20.113018STARTPOINT (4.062705498083785 51.95909715255291)5
3unloading seagoing vessel1970-01-01 00:45:20.113018STOPPOINT (4.062705498083785 51.95909715255291)0
4sailing empty seagoing vessel1970-01-01 00:45:20.113018STARTPOINT (4.062705498083785 51.95909715255291)0
5sailing empty seagoing vessel1970-01-01 01:22:33.152622STOPPOINT (3.637610458072877 52.10701582514347)0
\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 sailing full seagoing vessel 1970-01-01 00:03:20.000000 START \n", - "1 sailing full seagoing vessel 1970-01-01 00:38:13.474629 STOP \n", - "2 unloading seagoing vessel 1970-01-01 00:40:20.113018 START \n", - "3 unloading seagoing vessel 1970-01-01 00:45:20.113018 STOP \n", - "4 sailing empty seagoing vessel 1970-01-01 00:45:20.113018 START \n", - "5 sailing empty seagoing vessel 1970-01-01 01:22:33.152622 STOP \n", - "\n", - " geometry container level \n", - "0 POINT (3.637610458072877 52.10701582514347) 5 \n", - "1 POINT (4.062705498083785 51.95909715255291) 5 \n", - "2 POINT (4.062705498083785 51.95909715255291) 5 \n", - "3 POINT (4.062705498083785 51.95909715255291) 0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 0 \n", - "5 POINT (3.637610458072877 52.10701582514347) 0 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Inspect seagoing vessel log\n", "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" @@ -830,22 +577,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "fba2bcc6", "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'sailing_crit' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[14], line 8\u001b[0m\n\u001b[0;32m 2\u001b[0m data \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 3\u001b[0m layout \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlayout\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 5\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 6\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 7\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[\u001b[43msailing_crit\u001b[49m\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[0;32m 9\u001b[0m })\n\u001b[0;32m 10\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 11\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 12\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[0;32m 13\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[sailing_crit\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[0;32m 14\u001b[0m })\n\u001b[0;32m 17\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 18\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDepth\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df\u001b[38;5;241m.\u001b[39mindex,\n\u001b[0;32m 20\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df[sailing_crit\u001b[38;5;241m.\u001b[39mcondition],\n\u001b[0;32m 21\u001b[0m })\n", - "\u001b[1;31mNameError\u001b[0m: name 'sailing_crit' is not defined" - ] - } - ], + "outputs": [], "source": [ "res = plot.get_gantt_chart([vessel01, vessel02], y_scale=\"numbers\", static=True, id_map=[activities_dredging_vessel, activities_seagoing_vessel])\n", "data = res['data']\n", @@ -928,9 +663,9 @@ ], "metadata": { "kernelspec": { - "display_name": "myenv", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "myenv" + "name": "python3" }, "language_info": { "codemirror_mode": { diff --git a/src/openclsim/plugins/__init__.py b/src/openclsim/plugins/__init__.py index 08dd7cb4..0fc25896 100644 --- a/src/openclsim/plugins/__init__.py +++ b/src/openclsim/plugins/__init__.py @@ -3,6 +3,7 @@ from .delay import DelayPlugin, HasDelayPlugin from .weather import HasWeatherPluginActivity, WeatherCriterion from .depth import HasDepthPluginActivity, DepthCriterion +from .access import HasDredgePluginActivity, DredgeCriterion __all__ = [ "HasWeatherPluginActivity", @@ -11,4 +12,6 @@ "DelayPlugin", "HasDepthPluginActivity", "DepthPlugin", -] \ No newline at end of file + "HasDredgePluginActivity", + "DredgeCriterion", +] diff --git a/src/openclsim/plugins/access.py b/src/openclsim/plugins/access.py new file mode 100644 index 00000000..842a58e4 --- /dev/null +++ b/src/openclsim/plugins/access.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 + +"""Directory for the depth plugin.""" + +import numpy as np +import logging + +import openclsim.model + + +logger = logging.getLogger(__name__) + + +class DredgeCriterion: + """ + Used to add determine if a vessel can start it's dredging activity + + Parameters + ---------- + ... + + """ + + def __init__( + self, + name: str, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + """Initialization""" + self.name = name + + +class DredgePluginActivity(openclsim.model.AbstractPluginClass): + """Mixin for ShiftAmountActivity to initialize TestPluginShiftAmountActivity.""" + + def __init__(self, dredge_criteria=None): + assert isinstance(dredge_criteria, DredgeCriterion) + self.dredge_criteria = dredge_criteria + + def pre_process(self, env, activity_log, activity, *args, **kwargs): + if self.dredge_criteria is not None: + return {} + else: + return {} + + def check_constraint(self): + logger.info("Checking constraint in dredging plugin") + return [] + + def process_data(self, criterion) -> dict: + result: dict = {} + return result + + +class HasDredgePluginActivity(openclsim.model.PluginActivity): + """Mixin for Activity to initialize DredgePluginActivity.""" + + def __init__(self, dredge_criteria, *args, **kwargs): + super().__init__(*args, **kwargs) + + if dredge_criteria is not None and isinstance( + self, openclsim.model.PluginActivity + ): + dredge_plugin = DredgePluginActivity(dredge_criteria=dredge_criteria) + self.register_plugin(plugin=dredge_plugin, priority=2) From 3b5db37f4888704074267ecf2adc981af11c1b7d Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Mon, 25 Sep 2023 11:15:57 +0200 Subject: [PATCH 078/100] some updates --- notebooks/33_Accessibility_Dredging.ipynb | 540 +++++++++--------- .../33_Accessibility_Dredging_NoTide.ipynb | 291 +++++++++- notebooks/37_Claim_Berth_Interference.ipynb | 18 +- notebooks/Untitled.ipynb | 71 +++ notebooks/image-1.png | Bin 148347 -> 0 bytes src/openclsim/core/__init__.py | 4 + src/openclsim/core/movable2.py | 299 ++++++++++ 7 files changed, 927 insertions(+), 296 deletions(-) create mode 100644 notebooks/Untitled.ipynb delete mode 100644 notebooks/image-1.png create mode 100644 src/openclsim/core/movable2.py diff --git a/notebooks/33_Accessibility_Dredging.ipynb b/notebooks/33_Accessibility_Dredging.ipynb index a9a6f0e5..4d1546ed 100644 --- a/notebooks/33_Accessibility_Dredging.ipynb +++ b/notebooks/33_Accessibility_Dredging.ipynb @@ -51,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 282, + "execution_count": 41, "id": "f22b1f5f", "metadata": {}, "outputs": [], @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 283, + "execution_count": 42, "id": "0f3edd62", "metadata": {}, "outputs": [], @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 43, "id": "20b9605b", "metadata": {}, "outputs": [], @@ -170,7 +170,7 @@ }, { "cell_type": "code", - "execution_count": 285, + "execution_count": 44, "id": "35b65868-4fb1-4d63-9e30-e5027a4e00cf", "metadata": {}, "outputs": [ @@ -180,7 +180,7 @@ "" ] }, - "execution_count": 285, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" }, @@ -218,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": 286, + "execution_count": 45, "id": "2c15ab83", "metadata": {}, "outputs": [ @@ -338,7 +338,7 @@ "9 2023-01-01 09:00:00 1.672564e+09 464601.0 2.060660" ] }, - "execution_count": 286, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -349,17 +349,17 @@ }, { "cell_type": "code", - "execution_count": 287, + "execution_count": 46, "id": "94ec8119-ee10-42bb-be3e-06340c3630c8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 287, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -385,7 +385,7 @@ }, { "cell_type": "code", - "execution_count": 288, + "execution_count": 47, "id": "62c2dca3", "metadata": {}, "outputs": [], @@ -444,7 +444,7 @@ }, { "cell_type": "code", - "execution_count": 289, + "execution_count": 48, "id": "7bfc8b04", "metadata": {}, "outputs": [], @@ -492,7 +492,7 @@ }, { "cell_type": "code", - "execution_count": 290, + "execution_count": 49, "id": "4d0d0350", "metadata": {}, "outputs": [], @@ -503,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 291, + "execution_count": 50, "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", "metadata": {}, "outputs": [], @@ -530,7 +530,7 @@ }, { "cell_type": "code", - "execution_count": 292, + "execution_count": 51, "id": "4b621a99", "metadata": {}, "outputs": [], @@ -611,7 +611,7 @@ }, { "cell_type": "code", - "execution_count": 293, + "execution_count": 52, "id": "d272ff48", "metadata": {}, "outputs": [], @@ -682,7 +682,7 @@ }, { "cell_type": "code", - "execution_count": 294, + "execution_count": 53, "id": "a22e6a3f", "metadata": {}, "outputs": [], @@ -696,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": 295, + "execution_count": 54, "id": "67e9ea06", "metadata": {}, "outputs": [ @@ -769,7 +769,7 @@ }, { "cell_type": "code", - "execution_count": 296, + "execution_count": 55, "id": "e96e09e8", "metadata": {}, "outputs": [ @@ -936,7 +936,7 @@ }, { "cell_type": "code", - "execution_count": 297, + "execution_count": 56, "id": "f920e9e2", "metadata": {}, "outputs": [ @@ -1058,7 +1058,7 @@ }, { "cell_type": "code", - "execution_count": 298, + "execution_count": 57, "id": "fba2bcc6", "metadata": {}, "outputs": [ @@ -1073,58 +1073,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(120,125,92)", + "color": "rgb(58,3,116)", "width": 10 }, "mode": "lines", - "name": "loading dredging vessel", + "name": "sailing empty dredging vessel", "type": "scatter", "x": [ + "2023-01-01T01:00:00", + "2023-01-01T01:00:00", "2023-01-01T01:32:00.113019", "2023-01-01T01:32:00.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", + "2023-01-01T01:32:00.113019", + "2023-01-01T02:10:20.207201", + "2023-01-01T02:10:20.207201", "2023-01-01T02:42:20.320219", "2023-01-01T02:42:20.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", + "2023-01-01T02:42:20.320219", + "2023-01-01T03:20:40.414401", + "2023-01-01T03:20:40.414401", "2023-01-01T03:52:40.527420", "2023-01-01T03:52:40.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", + "2023-01-01T03:52:40.527420", + "2023-01-01T04:31:00.621602", + "2023-01-01T04:31:00.621602", "2023-01-01T05:03:00.734620", "2023-01-01T05:03:00.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:41:20.828802", + "2023-01-01T05:41:20.828802", "2023-01-01T06:13:20.941821", "2023-01-01T06:13:20.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:51:41.036003", + "2023-01-01T06:51:41.036003", "2023-01-01T07:23:41.149021", "2023-01-01T07:23:41.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", + "2023-01-01T07:23:41.149021", + "2023-01-01T08:02:01.243203", + "2023-01-01T08:02:01.243203", "2023-01-01T08:34:01.356222", "2023-01-01T08:34:01.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", + "2023-01-01T08:34:01.356222", + "2023-01-01T09:12:21.450404", + "2023-01-01T09:12:21.450404", "2023-01-01T09:44:21.563422", "2023-01-01T09:44:21.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", + "2023-01-01T09:44:21.563422", + "2023-01-01T10:22:41.657604", + "2023-01-01T10:22:41.657604", "2023-01-01T10:54:41.770623", "2023-01-01T10:54:41.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623" + "2023-01-01T10:54:41.770623" ], "y": [ 0, @@ -1178,58 +1178,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(156,161,128)", + "color": "rgb(94,39,152)", "width": 10 }, "mode": "lines", - "name": "sailing empty dredging vessel", + "name": "sailing full dredging vessel", "type": "scatter", "x": [ - "2023-01-01T01:00:00", - "2023-01-01T01:00:00", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623" + "2023-01-01T01:40:20.113019", + "2023-01-01T01:40:20.113019", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:07:00.207201", + "2023-01-01T02:50:40.320219", + "2023-01-01T02:50:40.320219", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T03:17:20.414401", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:01:00.527420", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T04:27:40.621602", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:11:20.734620", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T05:38:00.828802", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:21:40.941821", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T06:48:21.036003", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:32:01.149021", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T07:58:41.243203", + "2023-01-01T08:42:21.356222", + "2023-01-01T08:42:21.356222", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:09:01.450404", + "2023-01-01T09:52:41.563422", + "2023-01-01T09:52:41.563422", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T10:19:21.657604", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:03:01.770623", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912", + "2023-01-01T11:32:07.327912" ], "y": [ 0, @@ -1283,58 +1283,58 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(192,197,164)", + "color": "rgb(130,75,188)", "width": 10 }, "mode": "lines", - "name": "sailing full dredging vessel", + "name": "loading dredging vessel", "type": "scatter", "x": [ + "2023-01-01T01:32:00.113019", + "2023-01-01T01:32:00.113019", "2023-01-01T01:40:20.113019", "2023-01-01T01:40:20.113019", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", + "2023-01-01T01:40:20.113019", + "2023-01-01T02:42:20.320219", + "2023-01-01T02:42:20.320219", "2023-01-01T02:50:40.320219", "2023-01-01T02:50:40.320219", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", + "2023-01-01T02:50:40.320219", + "2023-01-01T03:52:40.527420", + "2023-01-01T03:52:40.527420", "2023-01-01T04:01:00.527420", "2023-01-01T04:01:00.527420", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", + "2023-01-01T04:01:00.527420", + "2023-01-01T05:03:00.734620", + "2023-01-01T05:03:00.734620", "2023-01-01T05:11:20.734620", "2023-01-01T05:11:20.734620", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", + "2023-01-01T05:11:20.734620", + "2023-01-01T06:13:20.941821", + "2023-01-01T06:13:20.941821", "2023-01-01T06:21:40.941821", "2023-01-01T06:21:40.941821", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", + "2023-01-01T06:21:40.941821", + "2023-01-01T07:23:41.149021", + "2023-01-01T07:23:41.149021", "2023-01-01T07:32:01.149021", "2023-01-01T07:32:01.149021", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", + "2023-01-01T07:32:01.149021", + "2023-01-01T08:34:01.356222", + "2023-01-01T08:34:01.356222", "2023-01-01T08:42:21.356222", "2023-01-01T08:42:21.356222", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", + "2023-01-01T08:42:21.356222", + "2023-01-01T09:44:21.563422", + "2023-01-01T09:44:21.563422", "2023-01-01T09:52:41.563422", "2023-01-01T09:52:41.563422", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", + "2023-01-01T09:52:41.563422", + "2023-01-01T10:54:41.770623", + "2023-01-01T10:54:41.770623", "2023-01-01T11:03:01.770623", "2023-01-01T11:03:01.770623", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912" + "2023-01-01T11:03:01.770623" ], "y": [ 0, @@ -1388,7 +1388,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(228,233,200)", + "color": "rgb(166,111,224)", "width": 10 }, "mode": "lines", @@ -1493,18 +1493,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(8,13,236)", + "color": "rgb(202,147,4)", "width": 10 }, "mode": "lines", - "name": "sailing empty seagoing vessel", + "name": "sailing full seagoing vessel", "type": "scatter", "x": [ - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T02:22:33.152622", - "2023-01-01T02:22:33.152622", - "2023-01-01T02:22:33.152622" + "2023-01-01T01:00:00", + "2023-01-01T01:00:00", + "2023-01-01T01:34:53.474628", + "2023-01-01T01:34:53.474628", + "2023-01-01T01:34:53.474628" ], "y": [ -1, @@ -1518,18 +1518,18 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(44,49,16)", + "color": "rgb(238,183,40)", "width": 10 }, "mode": "lines", - "name": "sailing full seagoing vessel", + "name": "sailing empty seagoing vessel", "type": "scatter", "x": [ - "2023-01-01T01:00:00", - "2023-01-01T01:00:00", - "2023-01-01T01:34:53.474628", - "2023-01-01T01:34:53.474628", - "2023-01-01T01:34:53.474628" + "2023-01-01T01:45:20.113019", + "2023-01-01T01:45:20.113019", + "2023-01-01T02:22:33.152622", + "2023-01-01T02:22:33.152622", + "2023-01-01T02:22:33.152622" ], "y": [ -1, @@ -1543,7 +1543,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(80,85,52)", + "color": "rgb(18,219,76)", "width": 10 }, "mode": "lines", @@ -3964,9 +3964,9 @@ } }, "text/html": [ - "
\n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(189,40,204)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_full:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:45", + "1970-01-01T00:02:45", + "1970-01-01T00:02:45" + ], + "y": [ + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(201,52,216)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:02:45", + "1970-01-01T00:02:45", + "1970-01-01T00:03:10", + "1970-01-01T00:03:10", + "1970-01-01T00:03:10" + ], + "y": [ + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(213,64,228)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_empty:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:20", + "1970-01-01T00:00:20", + "1970-01-01T00:00:20" + ], + "y": [ + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(225,76,240)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + "dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(237,88,252)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_full:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:35", + "1970-01-01T00:03:35", + "1970-01-01T00:03:35" + ], + "y": [ + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(249,100,8)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:03:35", + "1970-01-01T00:03:35", + "1970-01-01T00:04:00", + "1970-01-01T00:04:00", + "1970-01-01T00:04:00" + ], + "y": [ + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(5,112,20)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(17,124,32)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_empty:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:20", + "1970-01-01T00:00:20", + "1970-01-01T00:00:20" + ], + "y": [ + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + "dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(29,136,44)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_empty:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:20", + "1970-01-01T00:00:20", + "1970-01-01T00:00:20" + ], + "y": [ + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(41,148,56)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:04:25", + "1970-01-01T00:04:25", + "1970-01-01T00:04:50", + "1970-01-01T00:04:50", + "1970-01-01T00:04:50" + ], + "y": [ + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(53,160,68)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_full:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:25", + "1970-01-01T00:04:25", + "1970-01-01T00:04:25" + ], + "y": [ + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(65,172,80)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + "dredging_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(77,184,92)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:seagoing_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:00:40" + ], + "y": [ + "seagoing_vessel0", + "seagoing_vessel0", + "seagoing_vessel0", + "seagoing_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(89,196,104)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_empty:seagoing_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:00:45", + "1970-01-01T00:00:45", + "1970-01-01T00:00:45" + ], + "y": [ + "seagoing_vessel0", + "seagoing_vessel0", + "seagoing_vessel0", + "seagoing_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(101,208,116)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_full:seagoing_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10" + ], + "y": [ + "seagoing_vessel0", + "seagoing_vessel0", + "seagoing_vessel0", + "seagoing_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(113,220,128)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_empty:seagoing_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:15", + "1970-01-01T00:01:15", + "1970-01-01T00:01:15" + ], + "y": [ + "seagoing_vessel1", + "seagoing_vessel1", + "seagoing_vessel1", + "seagoing_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(125,232,140)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_full:seagoing_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10" + ], + "y": [ + "seagoing_vessel1", + "seagoing_vessel1", + "seagoing_vessel1", + "seagoing_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(137,244,152)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:seagoing_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:10" + ], + "y": [ + "seagoing_vessel1", + "seagoing_vessel1", + "seagoing_vessel1", + "seagoing_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(149,0,164)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_empty:seagoing_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:01:45", + "1970-01-01T00:01:45", + "1970-01-01T00:01:45" + ], + "y": [ + "seagoing_vessel2", + "seagoing_vessel2", + "seagoing_vessel2", + "seagoing_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(161,12,176)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:seagoing_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40" + ], + "y": [ + "seagoing_vessel2", + "seagoing_vessel2", + "seagoing_vessel2", + "seagoing_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(173,24,188)", + "width": 10 + }, + "mode": "lines", + "name": "sailing_full:seagoing_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:10" + ], + "y": [ + "seagoing_vessel2", + "seagoing_vessel2", + "seagoing_vessel2", + "seagoing_vessel2", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T00:04:50" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = plot.get_gantt_chart([*vessels.values()], id_map=[*activities_dredging_vessel.values(), *activities_seagoing_vessel.values()])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "72995596", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(4,212,47)", + "width": 10 + }, + "mode": "lines", + "name": "ac12a7de-1891-4707-8b8e-4c6ce1c532fb", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:00:40" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(32,240,75)", + "width": 10 + }, + "mode": "lines", + "name": "ab29e724-0b7f-4f29-89ab-6e3557a382c7", + "type": "scatter", + "x": [ + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(60,12,103)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(88,40,131)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(116,68,159)", + "width": 10 + }, + "mode": "lines", + "name": "6503a2a2-6c07-412a-94a9-8ad5f0525070", + "type": "scatter", + "x": [ + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:10" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(144,96,187)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(172,124,215)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:04:25", + "1970-01-01T00:04:25", + "1970-01-01T00:04:50", + "1970-01-01T00:04:50", + "1970-01-01T00:04:50" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(200,152,243)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:02:45", + "1970-01-01T00:02:45", + "1970-01-01T00:03:10", + "1970-01-01T00:03:10", + "1970-01-01T00:03:10" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(228,180,15)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:03:35", + "1970-01-01T00:03:35", + "1970-01-01T00:04:00", + "1970-01-01T00:04:00", + "1970-01-01T00:04:00" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:10", + "1970-01-01T00:04:50" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = plot.get_gantt_chart(\n", " [berth, dump, dredging_vessel],\n", @@ -438,10 +3039,1078 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "e9b3bfea", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(143,188,220)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:seagoing_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:10", + "1970-01-01T00:00:10", + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:00:40" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(185,230,6)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:seagoing_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(227,16,48)", + "width": 10 + }, + "mode": "lines", + "name": "12706b3c-df0b-4b82-9b5b-cedf88cdd404", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(13,58,90)", + "width": 10 + }, + "mode": "lines", + "name": "ee775f44-94fd-4aab-8dd2-d9990434d542", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(55,100,132)", + "width": 10 + }, + "mode": "lines", + "name": "unloading:seagoing_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:40", + "1970-01-01T00:00:40", + "1970-01-01T00:01:10", + "1970-01-01T00:01:10", + "1970-01-01T00:01:10" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(97,142,174)", + "width": 10 + }, + "mode": "lines", + "name": "48cad713-7277-4ea7-beb2-85f8180e2772", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:10", + "1970-01-01T00:04:10" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = plot.get_gantt_chart(\n", " [berth, seagoing_vessel],\n", @@ -451,10 +4120,1138 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "778e9d5f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(31,210,109)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null, + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(73,252,151)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null, + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(115,38,193)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null, + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(157,80,235)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null, + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(199,122,21)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null, + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(241,164,63)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null, + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:01:40", + "1970-01-01T00:04:10" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "def expand(a, namespace):\n", " n = len(namespace)\n", @@ -476,10 +5273,1138 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "dff35f90", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(144,28,242)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null, + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(186,70,28)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel0", + "type": "scatter", + "x": [ + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:01:40", + "1970-01-01T00:01:40", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30" + ], + "y": [ + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null, + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + "loading:dredging_vessel0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(228,112,70)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null, + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(14,154,112)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel1", + "type": "scatter", + "x": [ + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:02:30", + "1970-01-01T00:02:30", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20" + ], + "y": [ + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null, + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + "loading:dredging_vessel1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(56,196,154)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null, + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(98,238,196)", + "width": 10 + }, + "mode": "lines", + "name": "loading:dredging_vessel2", + "type": "scatter", + "x": [ + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:03:20", + "1970-01-01T00:03:20", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10", + "1970-01-01T00:04:10" + ], + "y": [ + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null, + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + "loading:dredging_vessel2", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:01:40", + "1970-01-01T00:04:10" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# plot only loading activities of dredging vessels\n", "\n", @@ -511,10 +6436,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "0ffa807a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABH0AAAJGCAYAAADGe/ngAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOFUlEQVR4nOzdd1yVdf/H8fdhbxBFBAUx996gme3ShmU7LSe5rcw027a967btym1qdtcvS+92mXp3m4p7TxygILgAWQc45/r9cSHknZUDuBiv5+NxHg/5nnOu6w2pyZvr+7lshmEYAgAAAAAAQKXiYnUAAAAAAAAAlDxKHwAAAAAAgEqI0gcAAAAAAKASovQBAAAAAACohCh9AAAAAAAAKiFKHwAAAAAAgEqI0gcAAAAAAKAScrM6wP9yOp1KSkqSv7+/bDab1XEAAAAAAABKhGEYOnPmjMLDw+XiUvrX4ZS70icpKUkRERFWxwAAAAAAACgViYmJqlOnTqmfp9yVPv7+/pLML0BAQIDFaQAAAAAAAEpGRkaGIiIiirqP0lbuSp+zW7oCAgIofQAAAAAAQKVTVuNsGOQMAAAAAABQCVH6AAAAAAAAVEKUPgAAAAAAAJVQuZvpAwAAAADA5XI4HMrPz7c6BqogDw+PMrkd+4Wg9AEAAAAAVBqGYejYsWNKS0uzOgqqKBcXF9WrV08eHh5WR6H0AQAAAABUHmcLn5o1a8rHx6fM7pIESJLT6VRSUpKSk5MVGRlp+e8/Sh8AAAAAQKXgcDiKCp/q1atbHQdVVEhIiJKSklRQUCB3d3dLs5SPTWYAAAAAAFymszN8fHx8LE6Cquzsti6Hw2FxEkofAAAAAEAlY/WWGlRt5en3H6UPAAAAAABAJUTpAwAAAACAha699lqNGjWqzM536NAh2Ww2bd68uczOWVaioqL03nvvWR2j3KD0AQAAAACgkurfv7969uxZYsfbtGmT7rvvPoWGhsrLy0sNGzbUoEGDtHfv3hI7h2Rukfrqq68u+n3r1q3T4MGDSzRLRUbpAwAAAABAJeNwOOR0Okv0mF9//bU6deoku92uhQsXateuXVqwYIECAwP1wgsvlOi5LlVISEipD/LOy8sr1eOXJEofAAAAAAAsVlBQoJEjRyowMFA1atTQCy+8IMMwip632+0aM2aMateuLV9fX8XExGjFihVFz8+dO1dBQUFaunSpmjVrJk9PTw0cOFDz5s3TkiVLZLPZZLPZznnPgQMHdN1118nHx0etW7fW6tWr/zRfdna2BgwYoFtvvVVLly7VjTfeqHr16ikmJkYTJ07URx99VPTalStXKjo6Wp6engoLC9PTTz+tgoKCouevvfZaPfbYY3rqqacUHBysWrVq6aWXXip6PioqSpJ01113yWazFX0cHx+vO++8U6GhofLz81PHjh31888/n5Pzf7d32Ww2zZw5U3fddZd8fHzUsGFDLV269Jz3bN++Xbfccov8/PwUGhqqPn366MSJE+fkHTlypEaNGqUaNWqoW7duf/p1Km8ofQAAAAAAlZZhGMrOKyjzx+8Lmwsxb948ubm5KS4uTu+//77eeecdzZw5s+j5kSNHavXq1fr000+1detW3Xffferevbv27dtX9Jrs7Gy9+eabmjlzpnbs2KEPPvhA999/v7p3767k5GQlJyfryiuvLHr9c889pzFjxmjz5s1q1KiRevXqdU4583s//PCDTpw4oaeeeuq8zwcFBUmSjh49qltvvVUdO3bUli1bNHXqVM2aNUuvvfbaHz5fX19frV27Vm+99ZZeeeUV/fTTT5LMLVqSNGfOHCUnJxd9nJmZqVtvvVXLli3Tpk2b1L17d/Xo0UMJCQl/+bV9+eWXdf/992vr1q269dZb9dBDD+nUqVOSpLS0NF1//fVq27at1q9fr++//14pKSm6//77/5DXw8NDq1at0rRp0/7yfOWJm9UBAAAAAAAoLTn5DjV78YcyP+/OV7rJx+PCv+WOiIjQu+++K5vNpsaNG2vbtm169913NWjQICUkJGjOnDlKSEhQeHi4JGnMmDH6/vvvNWfOHL3xxhuSpPz8fE2ZMkWtW7cuOq63t7fsdrtq1ar1h3OOGTNGt912mySzGGnevLn279+vJk2a/OG1Z8ul8z33e1OmTFFERIQmTZokm82mJk2aKCkpSePGjdOLL74oFxfz2pNWrVpp/PjxkqSGDRtq0qRJWrZsmW666SaFhIRIMouk3+du3br1OZ/bq6++qi+//FJLly7VyJEj/zRT//791atXL0nSG2+8oQ8++EBxcXHq3r27Jk2apLZt2xZ9DSVp9uzZioiI0N69e9WoUaOijG+99dZffu7lEVf6AAAAAABgsU6dOslmsxV93LlzZ+3bt08Oh0Pbtm2Tw+FQo0aN5OfnV/RYuXKl4uPji97j4eGhVq1aXfA5f//asLAwSVJqaup5X3uhVy7t2rVLnTt3Pudz6dKlizIzM3XkyJHznvvs+f/s3GdlZmZqzJgxatq0qYKCguTn56ddu3b97ZU+vz+Xr6+vAgICis61ZcsWLV++/Jyv69li6/df2/bt2//NZ14+caUPAAAAAKDS8nZ31c5Xyn4Gi7e7a4kdKzMzU66urtqwYYNcXc89rp+fX/E5vb3PKVv+jru7e9Gvz77vz4Y/n73iZffu3ercufMFn+NCzn32/H83eHrMmDH66aefNHHiRDVo0EDe3t669957/3aw8l+dKzMzUz169NCbb775h/edLcIksyyqiC6q9JkwYYIWL16s3bt3y9vbW1deeaXefPNNNW7cuOg11157rVauXHnO+4YMGVKh9rwBAAAAACoHm812UdusrLJ27dpzPl6zZo0aNmwoV1dXtW3bVg6HQ6mpqeratetFHdfDw0MOh+Oy8918882qUaOG3nrrLX355Zd/eD4tLU1BQUFq2rSpvvjiCxmGUVQkrVq1Sv7+/qpTp84Fn8/d3f0PuVetWqX+/fvrrrvukmQWNocOHbr0T0pSu3bt9MUXXygqKkpubuX/98nFuqjtXStXrtSIESO0Zs0a/fTTT8rPz9fNN9+srKysc143aNCgoiFRycnJFXLfGwAAAAAAZSUhIUGjR4/Wnj17tGjRIn344Yd6/PHHJZlX2Tz00EPq27evFi9erIMHDyouLk4TJkzQN99885fHjYqK0tatW7Vnzx6dOHFC+fn5l5TP19dXM2fO1DfffKM77rhDP//8sw4dOqT169frqaee0tChQyVJw4cPV2Jioh599FHt3r1bS5Ys0fjx4zV69OiieT4XIioqSsuWLdOxY8d0+vRpSeZcncWLF2vz5s3asmWLevfufdm3pR8xYoROnTqlXr16ad26dYqPj9cPP/ygAQMGlEhZZrWLqrG+//77cz6eO3euatasqQ0bNujqq68uWvfx8TnvkCgAQOW0N+WMUjPsVscAAAAVULu6QRXiSpzS1rdvX+Xk5Cg6Olqurq56/PHHNXjw4KLn58yZo9dee01PPvmkjh49qho1aqhTp066/fbb//K4gwYN0ooVK9ShQwdlZmZq+fLlRbdAv1h33nmnfvvtN02YMEG9e/dWRkaGIiIidP31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hCh9AKCMzPjPAb3+7S5J0v0d6uiNu1rKzdXF4lQAAAAAKitKHwAoZYZhaOKPezR5ebwkafDVV+iZW5rIZrNZnAwAAABAZcaPmAGgFDmchp77antR4fNU98YUPgAAAPhb1157rUaNGmV1jFJz6NAh2Ww2bd68WZK0YsUK2Ww2paWlWZqrsqH0AYBSklfg1OOfbtInaxNks0lv3NVSw69tQOEDAACACm/GjBlq3bq1/Pz8FBQUpLZt22rChAkX/P6IiAglJyerRYsWpZgSbO8CgFKQnVegYQs2auXe43J3tendB9ro9lbhVscCAAAALtvs2bM1atQoffDBB7rmmmtkt9u1detWbd++/YKP4erqqlq1apViSkhc6QMAJS49O199ZsVp5d7j8nZ31cx+HSl8AAAA8KeysrLUt29f+fn5KSwsTG+//fYfXmOz2fTVV1+dsxYUFKS5c+dKKt4u9dlnn6lr167y9vZWx44dtXfvXq1bt04dOnSQn5+fbrnlFh0/frzoGP3791fPnj318ssvKyQkRAEBARo6dKjy8vL+NO/SpUt1//33KzY2Vg0aNFDz5s3Vq1cvvf7660WvcTqdeuWVV1SnTh15enqqTZs2+v7774ue/9/tXSgdXOkDACUoNSNXfWfHafexMwrwctOcAdFqX7ea1bEAAACqLMMwZOTklPl5bd7eF7ytf+zYsVq5cqWWLFmimjVr6tlnn9XGjRvVpk2biz7v+PHj9d577ykyMlIDBw5U79695e/vr/fff18+Pj66//779eKLL2rq1KlF71m2bJm8vLy0YsUKHTp0SAMGDFD16tXPKXF+r1atWlq5cqUOHz6sunXrnvc177//vt5++2199NFHatu2rWbPnq077rhDO3bsUMOGDS/688KlofQBgBKScDJbD89aq4RT2Qrx99T82Gg1qRVgdSwAAIAqzcjJ0Z527cv8vI03bpDNx+dvX5eZmalZs2ZpwYIFuuGGGyRJ8+bNU506dS7pvGPGjFG3bt0kSY8//rh69eqlZcuWqUuXLpKk2NjYoquDzvLw8NDs2bPl4+Oj5s2b65VXXtHYsWP16quvysXljxuExo8fr7vvvltRUVFq1KiROnfurFtvvVX33ntv0esnTpyocePG6cEHH5Qkvfnmm1q+fLnee+89TZ48+ZI+N1w8tncBQAnYc+yM7p32mxJOZSsy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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = plot.get_step_chart([berth, dump])" ] @@ -536,7 +6472,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.9.16" } }, "nbformat": 4, From 7faee261df379b54d8339c318518c86a0eafd1e7 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Thu, 5 Oct 2023 17:28:22 +0200 Subject: [PATCH 080/100] updates on access.py and notebook 33 --- .../33_Accessibility_Dredging_NoTide.ipynb | 40 ++++++++++--------- .../33_Accessibility_Dredging_Tide.ipynb | 2 +- src/openclsim/plugins/access.py | 28 ++++++++++--- 3 files changed, 46 insertions(+), 24 deletions(-) diff --git a/notebooks/33_Accessibility_Dredging_NoTide.ipynb b/notebooks/33_Accessibility_Dredging_NoTide.ipynb index 0a282d12..252e57e8 100644 --- a/notebooks/33_Accessibility_Dredging_NoTide.ipynb +++ b/notebooks/33_Accessibility_Dredging_NoTide.ipynb @@ -295,20 +295,11 @@ "outputs": [], "source": [ "# Define custom activities with Depth Plugin\n", - "ShiftAmountWithDepthActivity = type(\n", - " \"ShiftAmountWithDepthActivity\",\n", - " (\n", - " plugin.HasDepthPluginActivity,\n", - " model.ShiftAmountActivity,\n", - " ),\n", - " {},\n", - ")\n", - "\n", - "MoveWithDredgeActivity = type(\n", - " \"MoveWithDredgeActivity\",\n", + "WhileWaitingToDredge = type(\n", + " \"WhileWaitingToDredge\",\n", " (\n", " plugin.HasDredgePluginActivity,\n", - " model.MoveActivity,\n", + " model.WhileActivity,\n", " ),\n", " {},\n", ")" @@ -332,13 +323,12 @@ "\n", "# Specify dredging subprocesses\n", "dredging_subprocesses = [\n", - " MoveWithDredgeActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing empty dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=berth,\n", - " dredge_criteria=dredge_criteria,\n", " ),\n", " model.ShiftAmountActivity(\n", " env=my_env,\n", @@ -370,10 +360,12 @@ "]\n", "\n", "# Define activities of the dredging vessel\n", - "activities_dredging_vessel = model.WhileActivity(\n", + "activities_dredging_vessel = WhileWaitingToDredge(\n", " env=my_env,\n", " name=\"while sequential activity dredging vessel\",\n", " registry=registry,\n", + " dredge_criteria=dredge_criteria,\n", + " destination=berth,\n", " sub_processes=[\n", " model.SequentialActivity(\n", " env=my_env,\n", @@ -482,6 +474,10 @@ "name": "stdout", "output_type": "stream", "text": [ + "check dredging criteria 0\n", + "check if we need to dredge\n", + "<__main__.DredgedSite object at 0x000001AF6AFF9B20> -18 -17.5\n", + "we are not dredging\n", "mover dredging vessel destination berth\n", "mover seagoing vessel destination berth\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", @@ -529,6 +525,14 @@ "my_env.run()" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "653367fa", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "id": "37887fe1", @@ -847,7 +851,7 @@ "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mc:\\Users\\asepehri\\github\\OpenCLSim\\notebooks\\33_Accessibility_Dredging_NoTide.ipynb Cell 26\u001b[0m line \u001b[0;36m8\n\u001b[0;32m 2\u001b[0m data \u001b[39m=\u001b[39m res[\u001b[39m'\u001b[39m\u001b[39mdata\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[0;32m 3\u001b[0m layout \u001b[39m=\u001b[39m res[\u001b[39m'\u001b[39m\u001b[39mlayout\u001b[39m\u001b[39m'\u001b[39m]\n\u001b[0;32m 5\u001b[0m data\u001b[39m.\u001b[39mappend({\n\u001b[0;32m 6\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mname\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39msailing_crit\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 7\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mx\u001b[39m\u001b[39m\"\u001b[39m:[vessel01\u001b[39m.\u001b[39mlog[\u001b[39m\"\u001b[39m\u001b[39mTimestamp\u001b[39m\u001b[39m\"\u001b[39m][\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39misoformat(), vessel01\u001b[39m.\u001b[39mlog[\u001b[39m\"\u001b[39m\u001b[39mTimestamp\u001b[39m\u001b[39m\"\u001b[39m][\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39misoformat()],\n\u001b[1;32m----> 8\u001b[0m \u001b[39m\"\u001b[39m\u001b[39my\u001b[39m\u001b[39m\"\u001b[39m:[sailing_crit\u001b[39m.\u001b[39mminimum,sailing_crit\u001b[39m.\u001b[39mminimum],\n\u001b[0;32m 9\u001b[0m })\n\u001b[0;32m 10\u001b[0m data\u001b[39m.\u001b[39mappend({\n\u001b[0;32m 11\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mname\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39msailing_crit\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 12\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mx\u001b[39m\u001b[39m\"\u001b[39m:[vessel02\u001b[39m.\u001b[39mlog[\u001b[39m\"\u001b[39m\u001b[39mTimestamp\u001b[39m\u001b[39m\"\u001b[39m][\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39misoformat(), vessel02\u001b[39m.\u001b[39mlog[\u001b[39m\"\u001b[39m\u001b[39mTimestamp\u001b[39m\u001b[39m\"\u001b[39m][\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39misoformat()],\n\u001b[0;32m 13\u001b[0m \u001b[39m\"\u001b[39m\u001b[39my\u001b[39m\u001b[39m\"\u001b[39m:[sailing_crit\u001b[39m.\u001b[39mminimum,sailing_crit\u001b[39m.\u001b[39mminimum],\n\u001b[0;32m 14\u001b[0m })\n\u001b[0;32m 17\u001b[0m data\u001b[39m.\u001b[39mappend({\n\u001b[0;32m 18\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mname\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39mDepth\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 19\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mx\u001b[39m\u001b[39m\"\u001b[39m:depth_df\u001b[39m.\u001b[39mindex,\n\u001b[0;32m 20\u001b[0m \u001b[39m\"\u001b[39m\u001b[39my\u001b[39m\u001b[39m\"\u001b[39m:depth_df[sailing_crit\u001b[39m.\u001b[39mcondition],\n\u001b[0;32m 21\u001b[0m })\n", + "Cell \u001b[1;32mIn[14], line 8\u001b[0m\n\u001b[0;32m 2\u001b[0m data \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 3\u001b[0m layout \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlayout\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 5\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 6\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 7\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[\u001b[43msailing_crit\u001b[49m\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[0;32m 9\u001b[0m })\n\u001b[0;32m 10\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 11\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 12\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[0;32m 13\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[sailing_crit\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[0;32m 14\u001b[0m })\n\u001b[0;32m 17\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 18\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDepth\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df\u001b[38;5;241m.\u001b[39mindex,\n\u001b[0;32m 20\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df[sailing_crit\u001b[38;5;241m.\u001b[39mcondition],\n\u001b[0;32m 21\u001b[0m })\n", "\u001b[1;31mNameError\u001b[0m: name 'sailing_crit' is not defined" ] } @@ -934,9 +938,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "myenv", "language": "python", - "name": "python3" + "name": "myenv" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/33_Accessibility_Dredging_Tide.ipynb b/notebooks/33_Accessibility_Dredging_Tide.ipynb index a9a6f0e5..fd65f685 100644 --- a/notebooks/33_Accessibility_Dredging_Tide.ipynb +++ b/notebooks/33_Accessibility_Dredging_Tide.ipynb @@ -5526,7 +5526,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.16" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/src/openclsim/plugins/access.py b/src/openclsim/plugins/access.py index 842a58e4..ed6c44f9 100644 --- a/src/openclsim/plugins/access.py +++ b/src/openclsim/plugins/access.py @@ -35,19 +35,37 @@ def __init__( class DredgePluginActivity(openclsim.model.AbstractPluginClass): """Mixin for ShiftAmountActivity to initialize TestPluginShiftAmountActivity.""" - def __init__(self, dredge_criteria=None): + def __init__(self, dredge_criteria=None, destination=None, *args, **kwargs): + super().__init__(*args, **kwargs) assert isinstance(dredge_criteria, DredgeCriterion) self.dredge_criteria = dredge_criteria + self.destination = destination def pre_process(self, env, activity_log, activity, *args, **kwargs): + print("check dredging criteria", env.now) + if self.dredge_criteria is not None: + print("check if we need to dredge") + if self.check_constraint(): + print("we are dredging") + activity_label = { + "type": "plugin", "ref": "dredging" + } + waiting = 36000 + return self.delay_processing(env, activity_label, activity_log, waiting) return {} else: return {} def check_constraint(self): - logger.info("Checking constraint in dredging plugin") - return [] + logger.info("True if we need to dredge") + print(self.destination, self.destination.ABL, self.destination.DCL) + if self.destination.ABL > self.destination.DCL: + print("we are going to dredge") + return True + else: + print("we are not dredging") + return False def process_data(self, criterion) -> dict: result: dict = {} @@ -57,11 +75,11 @@ def process_data(self, criterion) -> dict: class HasDredgePluginActivity(openclsim.model.PluginActivity): """Mixin for Activity to initialize DredgePluginActivity.""" - def __init__(self, dredge_criteria, *args, **kwargs): + def __init__(self, dredge_criteria, destination, *args, **kwargs): super().__init__(*args, **kwargs) if dredge_criteria is not None and isinstance( self, openclsim.model.PluginActivity ): - dredge_plugin = DredgePluginActivity(dredge_criteria=dredge_criteria) + dredge_plugin = DredgePluginActivity(dredge_criteria=dredge_criteria, destination=destination) self.register_plugin(plugin=dredge_plugin, priority=2) From 23ee69161b9f089fbfca9fe746bf83c5edc529e5 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Mon, 9 Oct 2023 17:15:55 +0200 Subject: [PATCH 081/100] implement sedimentation rate + wait for sedimentation --- .../33_Accessibility_Dredging_NoTide.ipynb | 740 ++++++++++++++++-- src/openclsim/core/access.py | 15 +- src/openclsim/plugins/access.py | 38 +- 3 files changed, 722 insertions(+), 71 deletions(-) diff --git a/notebooks/33_Accessibility_Dredging_NoTide.ipynb b/notebooks/33_Accessibility_Dredging_NoTide.ipynb index 252e57e8..884e0c08 100644 --- a/notebooks/33_Accessibility_Dredging_NoTide.ipynb +++ b/notebooks/33_Accessibility_Dredging_NoTide.ipynb @@ -204,9 +204,15 @@ " \"capacity\": 100,\n", " \"level\": 80,\n", " \"nr_resources\": 1,\n", + " # actual bed level is 0.5 above\n", " \"ABL\": -18,\n", + " # dredging criterion level\n", " \"DCL\": -17.5,\n", + " # dredge bed level (after dredging)\n", " \"DBL\": -18.5,\n", + " # sedimentation rate of 1m per week, in m/s\n", + " \"SR\": 1 / (3600 * 24 * 7)\n", + " \n", "}\n", "berth = DredgedSite(**data_berth)\n", "\n", @@ -295,11 +301,11 @@ "outputs": [], "source": [ "# Define custom activities with Depth Plugin\n", - "WhileWaitingToDredge = type(\n", - " \"WhileWaitingToDredge\",\n", + "MoveWhenDredgingNeeded = type(\n", + " \"MoveWhenDredgingNeeded\",\n", " (\n", " plugin.HasDredgePluginActivity,\n", - " model.WhileActivity,\n", + " model.MoveActivity,\n", " ),\n", " {},\n", ")" @@ -323,12 +329,13 @@ "\n", "# Specify dredging subprocesses\n", "dredging_subprocesses = [\n", - " model.MoveActivity(\n", + " MoveWhenDredgingNeeded(\n", " env=my_env,\n", " name=\"sailing empty dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=berth,\n", + " dredge_criteria=dredge_criteria,\n", " ),\n", " model.ShiftAmountActivity(\n", " env=my_env,\n", @@ -360,12 +367,10 @@ "]\n", "\n", "# Define activities of the dredging vessel\n", - "activities_dredging_vessel = WhileWaitingToDredge(\n", + "activities_dredging_vessel = model.WhileActivity(\n", " env=my_env,\n", " name=\"while sequential activity dredging vessel\",\n", " registry=registry,\n", - " dredge_criteria=dredge_criteria,\n", - " destination=berth,\n", " sub_processes=[\n", " model.SequentialActivity(\n", " env=my_env,\n", @@ -474,47 +479,88 @@ "name": "stdout", "output_type": "stream", "text": [ - "check dredging criteria 0\n", - "check if we need to dredge\n", - "<__main__.DredgedSite object at 0x000001AF6AFF9B20> -18 -17.5\n", - "we are not dredging\n", "mover dredging vessel destination berth\n", + "check dredging criteria 0\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "mover seagoing vessel destination berth\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover seagoing vessel destination offshore\n", + "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", - "mover seagoing vessel destination offshore\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", + "check dredging criteria 306620.2072004737\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 613240.4144009473\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 919860.6216014209\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 1226480.8288018946\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 1533101.0360023682\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 1839721.2432028418\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 2146341.4504033155\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", + "check dredging criteria 2452961.657603789\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" @@ -527,11 +573,599 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "653367fa", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TimestampActivityIDActivityStateObjectStateActivityLabel
01970-01-01 00:00:00.00000036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
11970-01-01 00:00:00.00000036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
21970-01-01 00:00:00.00000036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
31970-01-04 12:00:00.00000036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
41970-01-04 12:00:00.00000036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
51970-01-04 12:32:00.11301836d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
61970-01-04 13:10:20.20720036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
71970-01-04 13:10:20.20720036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
81970-01-04 13:10:20.20720036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
91970-01-08 01:10:20.20720036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
101970-01-08 01:10:20.20720036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
111970-01-08 01:42:20.32021936d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
121970-01-08 02:20:40.41440136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
131970-01-08 02:20:40.41440136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
141970-01-08 02:20:40.41440136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
151970-01-11 14:20:40.41440136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
161970-01-11 14:20:40.41440136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
171970-01-11 14:52:40.52741936d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
181970-01-11 15:31:00.62160136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
191970-01-11 15:31:00.62160136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
201970-01-11 15:31:00.62160136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
211970-01-15 03:31:00.62160136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
221970-01-15 03:31:00.62160136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
231970-01-15 04:03:00.73462036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
241970-01-15 04:41:20.82880236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
251970-01-15 04:41:20.82880236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
261970-01-15 04:41:20.82880236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
271970-01-18 16:41:20.82880236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
281970-01-18 16:41:20.82880236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
291970-01-18 17:13:20.94182036d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
301970-01-18 17:51:41.03600236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
311970-01-18 17:51:41.03600236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
321970-01-18 17:51:41.03600236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
331970-01-22 05:51:41.03600236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
341970-01-22 05:51:41.03600236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
351970-01-22 06:23:41.14902136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
361970-01-22 07:02:01.24320336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
371970-01-22 07:02:01.24320336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
381970-01-22 07:02:01.24320336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
391970-01-25 19:02:01.24320336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
401970-01-25 19:02:01.24320336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
411970-01-25 19:34:01.35622136d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
421970-01-25 20:12:21.45040336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
431970-01-25 20:12:21.45040336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
441970-01-25 20:12:21.45040336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
451970-01-29 08:12:21.45040336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
461970-01-29 08:12:21.45040336d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
471970-01-29 08:44:21.56342236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
481970-01-29 09:22:41.65760436d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{}
491970-01-29 09:22:41.65760436d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{}
501970-01-29 09:22:41.65760436d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
511970-02-01 21:22:41.65760436d84ac4-5a80-4ba0-9ee2-bae4e0d8309dWAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
521970-02-01 21:22:41.65760436d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTART{}{}
531970-02-01 21:54:41.77062236d84ac4-5a80-4ba0-9ee2-bae4e0d8309dSTOP{}{}
\n", + "
" + ], + "text/plain": [ + " Timestamp ActivityID \\\n", + "0 1970-01-01 00:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "1 1970-01-01 00:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "2 1970-01-01 00:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "3 1970-01-04 12:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "4 1970-01-04 12:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "5 1970-01-04 12:32:00.113018 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "6 1970-01-04 13:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "7 1970-01-04 13:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "8 1970-01-04 13:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "9 1970-01-08 01:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "10 1970-01-08 01:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "11 1970-01-08 01:42:20.320219 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "12 1970-01-08 02:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "13 1970-01-08 02:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "14 1970-01-08 02:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "15 1970-01-11 14:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "16 1970-01-11 14:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "17 1970-01-11 14:52:40.527419 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "18 1970-01-11 15:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "19 1970-01-11 15:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "20 1970-01-11 15:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "21 1970-01-15 03:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "22 1970-01-15 03:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "23 1970-01-15 04:03:00.734620 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "24 1970-01-15 04:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "25 1970-01-15 04:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "26 1970-01-15 04:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "27 1970-01-18 16:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "28 1970-01-18 16:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "29 1970-01-18 17:13:20.941820 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "30 1970-01-18 17:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "31 1970-01-18 17:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "32 1970-01-18 17:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "33 1970-01-22 05:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "34 1970-01-22 05:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "35 1970-01-22 06:23:41.149021 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "36 1970-01-22 07:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "37 1970-01-22 07:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "38 1970-01-22 07:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "39 1970-01-25 19:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "40 1970-01-25 19:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "41 1970-01-25 19:34:01.356221 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "42 1970-01-25 20:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "43 1970-01-25 20:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "44 1970-01-25 20:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "45 1970-01-29 08:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "46 1970-01-29 08:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "47 1970-01-29 08:44:21.563422 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "48 1970-01-29 09:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "49 1970-01-29 09:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "50 1970-01-29 09:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "51 1970-02-01 21:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "52 1970-02-01 21:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "53 1970-02-01 21:54:41.770622 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "\n", + " ActivityState ObjectState ActivityLabel \n", + "0 WAIT_START {} {} \n", + "1 WAIT_STOP {} {} \n", + "2 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "3 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "4 START {} {} \n", + "5 STOP {} {} \n", + "6 WAIT_START {} {} \n", + "7 WAIT_STOP {} {} \n", + "8 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "9 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "10 START {} {} \n", + "11 STOP {} {} \n", + "12 WAIT_START {} {} \n", + "13 WAIT_STOP {} {} \n", + "14 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "15 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "16 START {} {} \n", + "17 STOP {} {} \n", + "18 WAIT_START {} {} \n", + "19 WAIT_STOP {} {} \n", + "20 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "21 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "22 START {} {} \n", + "23 STOP {} {} \n", + "24 WAIT_START {} {} \n", + "25 WAIT_STOP {} {} \n", + "26 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "27 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "28 START {} {} \n", + "29 STOP {} {} \n", + "30 WAIT_START {} {} \n", + "31 WAIT_STOP {} {} \n", + "32 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "33 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "34 START {} {} \n", + "35 STOP {} {} \n", + "36 WAIT_START {} {} \n", + "37 WAIT_STOP {} {} \n", + "38 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "39 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "40 START {} {} \n", + "41 STOP {} {} \n", + "42 WAIT_START {} {} \n", + "43 WAIT_STOP {} {} \n", + "44 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "45 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "46 START {} {} \n", + "47 STOP {} {} \n", + "48 WAIT_START {} {} \n", + "49 WAIT_STOP {} {} \n", + "50 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "51 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "52 START {} {} \n", + "53 STOP {} {} " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# the dredging log is now not in the ship but in the plugin....\n", + "dredging_cycle_log_df = pd.DataFrame(activities_dredging_vessel.sub_processes[0].sub_processes[0].logbook)\n", + "dredging_cycle_log_df" + ] }, { "cell_type": "markdown", @@ -551,7 +1185,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "e96e09e8", "metadata": {}, "outputs": [ @@ -587,7 +1221,7 @@ " \n", " 0\n", " sailing empty dredging vessel\n", - " 1970-01-01 00:00:00.000000\n", + " 1970-01-04 12:00:00.000000\n", " START\n", " POINT (4.1795229742823 52.11590591837503)\n", " 0.0\n", @@ -595,7 +1229,7 @@ " \n", " 1\n", " sailing empty dredging vessel\n", - " 1970-01-01 00:32:00.113018\n", + " 1970-01-04 12:32:00.113018\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", " 0.0\n", @@ -603,7 +1237,7 @@ " \n", " 2\n", " loading dredging vessel\n", - " 1970-01-01 00:32:00.113018\n", + " 1970-01-04 12:32:00.113018\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", " 0.0\n", @@ -611,7 +1245,7 @@ " \n", " 3\n", " loading dredging vessel\n", - " 1970-01-01 00:40:20.113018\n", + " 1970-01-04 12:40:20.113018\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", " 10.0\n", @@ -619,7 +1253,7 @@ " \n", " 4\n", " sailing full dredging vessel\n", - " 1970-01-01 00:40:20.113018\n", + " 1970-01-04 12:40:20.113018\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", " 10.0\n", @@ -635,7 +1269,7 @@ " \n", " 67\n", " loading dredging vessel\n", - " 1970-01-01 10:03:01.770622\n", + " 1970-02-01 22:03:01.770622\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", " 5.0\n", @@ -643,7 +1277,7 @@ " \n", " 68\n", " sailing full dredging vessel\n", - " 1970-01-01 10:03:01.770622\n", + " 1970-02-01 22:03:01.770622\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", " 5.0\n", @@ -651,7 +1285,7 @@ " \n", " 69\n", " sailing full dredging vessel\n", - " 1970-01-01 10:32:07.327912\n", + " 1970-02-01 22:32:07.327912\n", " STOP\n", " POINT (4.1795229742823 52.11590591837503)\n", " 5.0\n", @@ -659,7 +1293,7 @@ " \n", " 70\n", " unloading dredging vessel\n", - " 1970-01-01 10:32:07.327912\n", + " 1970-02-01 22:32:07.327912\n", " START\n", " POINT (4.1795229742823 52.11590591837503)\n", " 5.0\n", @@ -667,7 +1301,7 @@ " \n", " 71\n", " unloading dredging vessel\n", - " 1970-01-01 10:35:27.327912\n", + " 1970-02-01 22:35:27.327912\n", " STOP\n", " POINT (4.1795229742823 52.11590591837503)\n", " 0.0\n", @@ -679,17 +1313,17 @@ ], "text/plain": [ " Activity Timestamp ActivityState \\\n", - "0 sailing empty dredging vessel 1970-01-01 00:00:00.000000 START \n", - "1 sailing empty dredging vessel 1970-01-01 00:32:00.113018 STOP \n", - "2 loading dredging vessel 1970-01-01 00:32:00.113018 START \n", - "3 loading dredging vessel 1970-01-01 00:40:20.113018 STOP \n", - "4 sailing full dredging vessel 1970-01-01 00:40:20.113018 START \n", + "0 sailing empty dredging vessel 1970-01-04 12:00:00.000000 START \n", + "1 sailing empty dredging vessel 1970-01-04 12:32:00.113018 STOP \n", + "2 loading dredging vessel 1970-01-04 12:32:00.113018 START \n", + "3 loading dredging vessel 1970-01-04 12:40:20.113018 STOP \n", + "4 sailing full dredging vessel 1970-01-04 12:40:20.113018 START \n", ".. ... ... ... \n", - "67 loading dredging vessel 1970-01-01 10:03:01.770622 STOP \n", - "68 sailing full dredging vessel 1970-01-01 10:03:01.770622 START \n", - "69 sailing full dredging vessel 1970-01-01 10:32:07.327912 STOP \n", - "70 unloading dredging vessel 1970-01-01 10:32:07.327912 START \n", - "71 unloading dredging vessel 1970-01-01 10:35:27.327912 STOP \n", + "67 loading dredging vessel 1970-02-01 22:03:01.770622 STOP \n", + "68 sailing full dredging vessel 1970-02-01 22:03:01.770622 START \n", + "69 sailing full dredging vessel 1970-02-01 22:32:07.327912 STOP \n", + "70 unloading dredging vessel 1970-02-01 22:32:07.327912 START \n", + "71 unloading dredging vessel 1970-02-01 22:35:27.327912 STOP \n", "\n", " geometry container level \n", "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", @@ -718,7 +1352,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "f920e9e2", "metadata": {}, "outputs": [ @@ -770,7 +1404,7 @@ " \n", " 2\n", " unloading seagoing vessel\n", - " 1970-01-01 00:40:20.113018\n", + " 1970-01-01 00:38:13.474629\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", " 5\n", @@ -778,7 +1412,7 @@ " \n", " 3\n", " unloading seagoing vessel\n", - " 1970-01-01 00:45:20.113018\n", + " 1970-01-01 00:43:13.474629\n", " STOP\n", " POINT (4.062705498083785 51.95909715255291)\n", " 0\n", @@ -786,7 +1420,7 @@ " \n", " 4\n", " sailing empty seagoing vessel\n", - " 1970-01-01 00:45:20.113018\n", + " 1970-01-01 00:43:13.474629\n", " START\n", " POINT (4.062705498083785 51.95909715255291)\n", " 0\n", @@ -794,7 +1428,7 @@ " \n", " 5\n", " sailing empty seagoing vessel\n", - " 1970-01-01 01:22:33.152622\n", + " 1970-01-01 01:20:26.514232\n", " STOP\n", " POINT (3.637610458072877 52.10701582514347)\n", " 0\n", @@ -807,10 +1441,10 @@ " Activity Timestamp ActivityState \\\n", "0 sailing full seagoing vessel 1970-01-01 00:03:20.000000 START \n", "1 sailing full seagoing vessel 1970-01-01 00:38:13.474629 STOP \n", - "2 unloading seagoing vessel 1970-01-01 00:40:20.113018 START \n", - "3 unloading seagoing vessel 1970-01-01 00:45:20.113018 STOP \n", - "4 sailing empty seagoing vessel 1970-01-01 00:45:20.113018 START \n", - "5 sailing empty seagoing vessel 1970-01-01 01:22:33.152622 STOP \n", + "2 unloading seagoing vessel 1970-01-01 00:38:13.474629 START \n", + "3 unloading seagoing vessel 1970-01-01 00:43:13.474629 STOP \n", + "4 sailing empty seagoing vessel 1970-01-01 00:43:13.474629 START \n", + "5 sailing empty seagoing vessel 1970-01-01 01:20:26.514232 STOP \n", "\n", " geometry container level \n", "0 POINT (3.637610458072877 52.10701582514347) 5 \n", @@ -840,7 +1474,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "fba2bcc6", "metadata": {}, "outputs": [ @@ -849,10 +1483,10 @@ "evalue": "name 'sailing_crit' is not defined", "output_type": "error", "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[14], line 8\u001b[0m\n\u001b[0;32m 2\u001b[0m data \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 3\u001b[0m layout \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlayout\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 5\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 6\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 7\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[\u001b[43msailing_crit\u001b[49m\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[0;32m 9\u001b[0m })\n\u001b[0;32m 10\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 11\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 12\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[0;32m 13\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[sailing_crit\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[0;32m 14\u001b[0m })\n\u001b[0;32m 17\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[0;32m 18\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDepth\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df\u001b[38;5;241m.\u001b[39mindex,\n\u001b[0;32m 20\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df[sailing_crit\u001b[38;5;241m.\u001b[39mcondition],\n\u001b[0;32m 21\u001b[0m })\n", - "\u001b[1;31mNameError\u001b[0m: name 'sailing_crit' is not defined" + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [15]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m data \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 3\u001b[0m layout \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlayout\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 5\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[1;32m 6\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 7\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[0;32m----> 8\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[\u001b[43msailing_crit\u001b[49m\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[1;32m 9\u001b[0m })\n\u001b[1;32m 10\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[1;32m 11\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 12\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[1;32m 13\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[sailing_crit\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[1;32m 14\u001b[0m })\n\u001b[1;32m 17\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[1;32m 18\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDepth\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df\u001b[38;5;241m.\u001b[39mindex,\n\u001b[1;32m 20\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df[sailing_crit\u001b[38;5;241m.\u001b[39mcondition],\n\u001b[1;32m 21\u001b[0m })\n", + "\u001b[0;31mNameError\u001b[0m: name 'sailing_crit' is not defined" ] } ], @@ -938,9 +1572,9 @@ ], "metadata": { "kernelspec": { - "display_name": "myenv", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "myenv" + "name": "python3" }, "language_info": { "codemirror_mode": { diff --git a/src/openclsim/core/access.py b/src/openclsim/core/access.py index 7a64ba27..e5b7286b 100644 --- a/src/openclsim/core/access.py +++ b/src/openclsim/core/access.py @@ -67,7 +67,6 @@ def get_MBL(self): state.update({"MBL": self.MBL.get_MBL()}) return state - # Determine the navigability of vessels class HasNavigability(SimpyObject): @@ -82,12 +81,18 @@ def available_water_depth(self): available_water_depth = self.AWL - self.MBL return available_water_depth - + class HasDredging(SimpyObject): - def __init__(self, ABL, DCL, DBL, *args, **kwargs): + def __init__(self, ABL, DCL, DBL, SR=0, *args, **kwargs): + """ + Support for dredged bed level. + ABL: actual bed level [m] + DCL: Dredge criterion level [m] + DBL: Dredge bed level [m] + SR: Sedimentation rate [m/s] + """ super().__init__(*args, **kwargs) self.ABL = ABL self.DCL = DCL self.DBL = DBL - - + self.SR = SR diff --git a/src/openclsim/plugins/access.py b/src/openclsim/plugins/access.py index ed6c44f9..e85eb273 100644 --- a/src/openclsim/plugins/access.py +++ b/src/openclsim/plugins/access.py @@ -37,27 +37,24 @@ class DredgePluginActivity(openclsim.model.AbstractPluginClass): def __init__(self, dredge_criteria=None, destination=None, *args, **kwargs): super().__init__(*args, **kwargs) + assert isinstance(dredge_criteria, DredgeCriterion) self.dredge_criteria = dredge_criteria self.destination = destination def pre_process(self, env, activity_log, activity, *args, **kwargs): print("check dredging criteria", env.now) - + if self.dredge_criteria is not None: - print("check if we need to dredge") - if self.check_constraint(): - print("we are dredging") - activity_label = { - "type": "plugin", "ref": "dredging" - } - waiting = 36000 - return self.delay_processing(env, activity_label, activity_log, waiting) - return {} + print("wait until we need to dredge again") + activity_label = {"type": "plugin", "ref": "dredging"} + waiting = self.time_until_dredging_needed() + print(f"waiting for {waiting} seconds") + return activity.delay_processing(env, activity_label, activity_log, waiting) else: return {} - def check_constraint(self): + def should_dredge(self): logger.info("True if we need to dredge") print(self.destination, self.destination.ABL, self.destination.DCL) if self.destination.ABL > self.destination.DCL: @@ -67,6 +64,17 @@ def check_constraint(self): print("we are not dredging") return False + def time_until_dredging_needed(self): + """compute how long until next dredging cycle starts""" + remaining_bed_level = self.destination.DCL - self.destination.ABL + print(f"remaining_bed_level: {remaining_bed_level}") + if remaining_bed_level < 0: + return 0 + + # m / m/s + remaining_duration = remaining_bed_level / self.destination.SR + return remaining_duration + def process_data(self, criterion) -> dict: result: dict = {} return result @@ -75,11 +83,15 @@ def process_data(self, criterion) -> dict: class HasDredgePluginActivity(openclsim.model.PluginActivity): """Mixin for Activity to initialize DredgePluginActivity.""" - def __init__(self, dredge_criteria, destination, *args, **kwargs): + def __init__(self, dredge_criteria, *args, **kwargs): super().__init__(*args, **kwargs) + assert hasattr(self, "destination"), f"{self} should have a destination" + destination = self.destination if dredge_criteria is not None and isinstance( self, openclsim.model.PluginActivity ): - dredge_plugin = DredgePluginActivity(dredge_criteria=dredge_criteria, destination=destination) + dredge_plugin = DredgePluginActivity( + dredge_criteria=dredge_criteria, destination=destination + ) self.register_plugin(plugin=dredge_plugin, priority=2) From 68361a821806607673a6d82342067c509486f3af Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Tue, 17 Oct 2023 10:54:00 +0200 Subject: [PATCH 082/100] adding excel files for Notebook 39 --- notebooks/activities.csv | 43 ++++ notebooks/activity_logs.csv | 208 ++++++++++++++++++ notebooks/best.csv | 16 ++ notebooks/concepts.csv | 11 + notebooks/concepts_sites.csv | 3 + notebooks/concepts_vessels.csv | 9 + ...igure4_24_cutters and barges scenarios.png | Bin 0 -> 511075 bytes notebooks/resources.csv | 71 ++++++ notebooks/vessel_specs.csv | 11 + 9 files changed, 372 insertions(+) create mode 100644 notebooks/activities.csv create mode 100644 notebooks/activity_logs.csv create mode 100644 notebooks/best.csv create mode 100644 notebooks/concepts.csv create mode 100644 notebooks/concepts_sites.csv create mode 100644 notebooks/concepts_vessels.csv create mode 100644 notebooks/figure4_24_cutters and barges scenarios.png create mode 100644 notebooks/resources.csv create mode 100644 notebooks/vessel_specs.csv diff --git a/notebooks/activities.csv b/notebooks/activities.csv new file mode 100644 index 00000000..b7a567d6 --- /dev/null +++ b/notebooks/activities.csv @@ -0,0 +1,43 @@ +ActivityID,ActivityName,ActivityClass,ParentId,ParentName,ParentLevel,OriginID,OriginName,DestinationID,DestinationName,ProcessorID,ProcessorName,MoverID,MoverName +342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,WhileActivity,,,0,,,,,,,, +3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,WhileActivity,,,0,,,,,,,, +77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,WhileActivity,,,0,,,,,,,, +261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,WhileActivity,,,0,,,,,,,, +31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,WhileActivity,,,0,,,,,,,, +358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,WhileActivity,,,0,,,,,,,, +3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,WhileActivity,,,0,,,,,,,, +69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,1,,,,,,,, +a1c4bcbe-a173-41a2-991d-1b119f45e6b1,sailing empty: sailing empty Carrier A,MoveActivity,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A +31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +57c8e1c1-084a-4f13-9968-5a311c06f034,sailing full: sailing full Carrier A,MoveActivity,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A +b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,2,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,, +edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,1,,,,,,,, +8882c57e-343a-487c-ab78-a7a735595347,sailing empty: sailing empty Carrier B,MoveActivity,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B +f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +d8d5f971-f0bd-44df-9e7e-2aae9779ff1f,sailing full: sailing full Carrier B,MoveActivity,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B +86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,2,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,, +953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,1,,,,,,,, +c1d3a2b0-0700-47b3-9347-64f80d17419d,sailing empty: sailing empty Carrier C,MoveActivity,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C +800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +c3ba0354-0587-4b20-9781-7d65a2fd53a5,sailing full: sailing full Carrier C,MoveActivity,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C +27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,2,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,, +ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,1,,,,,,,, +a48bda16-054d-4f8a-ba1d-0c6fcbc17bb8,sailing empty: sailing empty Barge I,MoveActivity,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I +dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +49ac4dfc-1526-4274-ae10-23ef85757b87,sailing full: sailing full Barge I,MoveActivity,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I +b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,2,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,, +7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,1,,,,,,,, +8fe35d98-01c6-4ba4-823e-ac53aca4dc47,sailing empty: sailing empty Barge II,MoveActivity,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II +2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +17074833-91ed-44f3-8264-a405b70f363a,sailing full: sailing full Barge II,MoveActivity,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II +6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,2,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,, +3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,1,,,,,,,, +29f641af-d9b2-41f8-b25d-9dbadde15857,sailing empty: sailing empty Barge III,MoveActivity,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III +22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +5d4d5efc-76af-4ce4-94f4-cd992a483dbe,sailing full: sailing full Barge III,MoveActivity,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III +5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,2,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,, +b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,1,,,,,,,, +f1425c0d-990a-47b5-86e2-56d5a3423c12,sailing empty: sailing empty Extra 1,MoveActivity,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,2,,,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,,,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1 +a97ac758-41d0-4c32-b782-cd6c0d14cd17,loading: loading Extra 1,ShiftAmountActivity,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,2,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,, +9fa3e0b9-6ef3-450f-b16f-e26cb73bdfd6,sailing full: sailing full Extra 1,MoveActivity,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,2,,,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,,,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1 +5e4d1ba0-16b6-4d3b-924d-5c9ed930026b,unloading: unloading Extra 1,ShiftAmountActivity,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,2,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,, diff --git a/notebooks/activity_logs.csv b/notebooks/activity_logs.csv new file mode 100644 index 00000000..405ee806 --- /dev/null +++ b/notebooks/activity_logs.csv @@ -0,0 +1,208 @@ +trip,ActivityID,ActivityName,ActivityClass,TimestampStart,TimestampStop,TimestampDt +1,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,WhileActivity,1970-01-01 00:00:00,1970-01-01 04:45:45,17145.0 +2,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,WhileActivity,1970-01-01 00:00:00,1970-01-01 09:37:25,34645.0 +3,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,WhileActivity,1970-01-01 04:45:45,1970-01-01 14:29:05,35000.0 +4,342bfba6-9217-4707-b325-9a96651c9dee,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier A,WhileActivity,1970-01-01 09:37:25,1970-01-01 14:29:05,17500.0 +1,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,WhileActivity,1970-01-01 00:00:00,1970-01-01 06:19:37,22777.0 +2,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,WhileActivity,1970-01-01 00:00:00,1970-01-01 11:11:17,40277.0 +3,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,WhileActivity,1970-01-01 06:19:37,1970-01-01 16:02:57,35000.0 +4,3713cc68-33b0-4c8a-9d63-43d50cefeb48,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier B,WhileActivity,1970-01-01 11:11:17,1970-01-01 16:02:57,17500.0 +1,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,WhileActivity,1970-01-01 00:00:00,1970-01-01 02:24:31,8671.0 +2,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,WhileActivity,1970-01-01 00:00:00,1970-01-01 07:16:11,26171.0 +3,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,WhileActivity,1970-01-01 02:24:31,1970-01-01 11:26:11,32500.0 +4,77103d44-7ac5-44a7-aa03-28399d58ddb2,while_sequential_activity_subcycle:while_sequential_activity_subcycle Carrier C,WhileActivity,1970-01-01 07:16:11,1970-01-01 11:26:11,15000.0 +1,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,WhileActivity,1970-01-01 00:00:00,1970-01-01 05:35:29,20129.0 +2,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,WhileActivity,1970-01-01 00:00:00,1970-01-01 10:27:09,37629.0 +3,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,WhileActivity,1970-01-01 05:35:29,1970-01-01 15:18:49,35000.0 +4,261bfa1e-c754-477a-b9d7-3b23fe116b9a,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge I,WhileActivity,1970-01-01 10:27:09,1970-01-01 15:18:49,17500.0 +1,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,WhileActivity,1970-01-01 00:00:00,1970-01-01 03:12:29,11549.0 +2,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,WhileActivity,1970-01-01 00:00:00,1970-01-01 08:04:09,29049.0 +3,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,WhileActivity,1970-01-01 03:12:29,1970-01-01 12:55:49,35000.0 +4,31b6b428-8c7a-431e-a396-eeac901d7233,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge II,WhileActivity,1970-01-01 08:04:09,1970-01-01 12:55:49,17500.0 +1,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,WhileActivity,1970-01-01 00:00:00,1970-01-01 03:58:29,14309.0 +2,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,WhileActivity,1970-01-01 00:00:00,1970-01-01 08:50:09,31809.0 +3,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,WhileActivity,1970-01-01 03:58:29,1970-01-01 13:41:49,35000.0 +4,358e4db3-364d-47fa-b45b-c6f78302b49d,while_sequential_activity_subcycle:while_sequential_activity_subcycle Barge III,WhileActivity,1970-01-01 08:50:09,1970-01-01 13:41:49,17500.0 +1,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,WhileActivity,1970-01-01 00:00:00,1970-01-01 07:04:35,25475.0 +2,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,WhileActivity,1970-01-01 00:00:00,1970-01-01 12:37:55,45475.0 +3,3f56e6c6-609e-4646-ba35-6c5fb23240f7,while_sequential_activity_subcycle:while_sequential_activity_subcycle Extra 1,WhileActivity,1970-01-01 07:04:35,1970-01-01 12:37:55,20000.0 +1,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:42:24,2544.0 +2,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 00:00:00,1970-01-01 03:20:57,12057.0 +3,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 00:42:24,1970-01-01 04:03:21,12057.0 +4,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 03:20:57,1970-01-01 04:45:45,5088.0 +5,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 04:03:21,1970-01-01 04:45:45,2544.0 +6,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 04:45:45,1970-01-01 05:28:09,2544.0 +7,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 04:45:45,1970-01-01 08:12:37,12412.0 +8,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 05:28:09,1970-01-01 08:55:01,12412.0 +9,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 08:12:37,1970-01-01 09:37:25,5088.0 +10,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 08:55:01,1970-01-01 09:37:25,2544.0 +11,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 09:37:25,1970-01-01 10:19:49,2544.0 +12,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 09:37:25,1970-01-01 13:04:17,12412.0 +13,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 10:19:49,1970-01-01 13:46:41,12412.0 +14,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 13:04:17,1970-01-01 14:29:05,5088.0 +15,69a03af7-afd1-4905-92b9-8796dcca531f,sequential_activity_subcycle:sequential_activity_subcycle Carrier A,SequentialActivity,1970-01-01 13:46:41,1970-01-01 14:29:05,2544.0 +1,a1c4bcbe-a173-41a2-991d-1b119f45e6b1,sailing empty: sailing empty Carrier A,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:42:24,2544.0 +2,a1c4bcbe-a173-41a2-991d-1b119f45e6b1,sailing empty: sailing empty Carrier A,MoveActivity,1970-01-01 04:45:45,1970-01-01 05:28:09,2544.0 +3,a1c4bcbe-a173-41a2-991d-1b119f45e6b1,sailing empty: sailing empty Carrier A,MoveActivity,1970-01-01 09:37:25,1970-01-01 10:19:49,2544.0 +1,31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,1970-01-01 02:39:17,1970-01-01 03:20:57,2500.0 +2,31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,1970-01-01 07:30:57,1970-01-01 08:12:37,2500.0 +3,31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,1970-01-01 12:22:37,1970-01-01 13:04:17,2500.0 +1,57c8e1c1-084a-4f13-9968-5a311c06f034,sailing full: sailing full Carrier A,MoveActivity,1970-01-01 03:20:57,1970-01-01 04:03:21,2544.0 +2,57c8e1c1-084a-4f13-9968-5a311c06f034,sailing full: sailing full Carrier A,MoveActivity,1970-01-01 08:12:37,1970-01-01 08:55:01,2544.0 +3,57c8e1c1-084a-4f13-9968-5a311c06f034,sailing full: sailing full Carrier A,MoveActivity,1970-01-01 13:04:17,1970-01-01 13:46:41,2544.0 +1,b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,1970-01-01 04:03:21,1970-01-01 04:45:45,2544.0 +2,b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,1970-01-01 08:55:01,1970-01-01 09:37:25,2544.0 +3,b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,1970-01-01 13:46:41,1970-01-01 14:29:05,2544.0 +1,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:47:40,2860.0 +2,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 00:00:00,1970-01-01 04:44:17,17057.0 +3,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 00:47:40,1970-01-01 05:31:57,17057.0 +4,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 04:44:17,1970-01-01 06:19:37,5720.0 +5,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 05:31:57,1970-01-01 06:19:37,2860.0 +6,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 06:19:37,1970-01-01 07:07:17,2860.0 +7,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 06:19:37,1970-01-01 09:35:57,11780.0 +8,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 07:07:17,1970-01-01 10:23:37,11780.0 +9,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 09:35:57,1970-01-01 11:11:17,5720.0 +10,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 10:23:37,1970-01-01 11:11:17,2860.0 +11,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 11:11:17,1970-01-01 11:58:57,2860.0 +12,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 11:11:17,1970-01-01 14:27:37,11780.0 +13,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 11:58:57,1970-01-01 15:15:17,11780.0 +14,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 14:27:37,1970-01-01 16:02:57,5720.0 +15,edc6089f-eccf-4bf6-8668-deed4edb00f9,sequential_activity_subcycle:sequential_activity_subcycle Carrier B,SequentialActivity,1970-01-01 15:15:17,1970-01-01 16:02:57,2860.0 +1,8882c57e-343a-487c-ab78-a7a735595347,sailing empty: sailing empty Carrier B,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:47:40,2860.0 +2,8882c57e-343a-487c-ab78-a7a735595347,sailing empty: sailing empty Carrier B,MoveActivity,1970-01-01 06:19:37,1970-01-01 07:07:17,2860.0 +3,8882c57e-343a-487c-ab78-a7a735595347,sailing empty: sailing empty Carrier B,MoveActivity,1970-01-01 11:11:17,1970-01-01 11:58:57,2860.0 +1,f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,1970-01-01 04:02:37,1970-01-01 04:44:17,2500.0 +2,f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,1970-01-01 08:54:17,1970-01-01 09:35:57,2500.0 +3,f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,1970-01-01 13:45:57,1970-01-01 14:27:37,2500.0 +1,d8d5f971-f0bd-44df-9e7e-2aae9779ff1f,sailing full: sailing full Carrier B,MoveActivity,1970-01-01 04:44:17,1970-01-01 05:31:57,2860.0 +2,d8d5f971-f0bd-44df-9e7e-2aae9779ff1f,sailing full: sailing full Carrier B,MoveActivity,1970-01-01 09:35:57,1970-01-01 10:23:37,2860.0 +3,d8d5f971-f0bd-44df-9e7e-2aae9779ff1f,sailing full: sailing full Carrier B,MoveActivity,1970-01-01 14:27:37,1970-01-01 15:15:17,2860.0 +1,86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,1970-01-01 05:31:57,1970-01-01 06:19:37,2860.0 +2,86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,1970-01-01 10:23:37,1970-01-01 11:11:17,2860.0 +3,86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,1970-01-01 15:15:17,1970-01-01 16:02:57,2860.0 +1,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:34:17,2057.0 +2,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 00:00:00,1970-01-01 01:15:57,4557.0 +3,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 00:34:17,1970-01-01 01:50:14,4557.0 +4,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 01:15:57,1970-01-01 02:24:31,4114.0 +5,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 01:50:14,1970-01-01 02:24:31,2057.0 +6,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 02:24:31,1970-01-01 02:58:48,2057.0 +7,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 02:24:31,1970-01-01 06:07:37,13386.0 +8,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 02:58:48,1970-01-01 06:41:54,13386.0 +9,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 06:07:37,1970-01-01 07:16:11,4114.0 +10,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 06:41:54,1970-01-01 07:16:11,2057.0 +11,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 07:16:11,1970-01-01 07:50:28,2057.0 +12,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 07:16:11,1970-01-01 10:17:37,10886.0 +13,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 07:50:28,1970-01-01 10:51:54,10886.0 +14,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 10:17:37,1970-01-01 11:26:11,4114.0 +15,953aecf1-1c3e-43c8-9e12-112de970e553,sequential_activity_subcycle:sequential_activity_subcycle Carrier C,SequentialActivity,1970-01-01 10:51:54,1970-01-01 11:26:11,2057.0 +1,c1d3a2b0-0700-47b3-9347-64f80d17419d,sailing empty: sailing empty Carrier C,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:34:17,2057.0 +2,c1d3a2b0-0700-47b3-9347-64f80d17419d,sailing empty: sailing empty Carrier C,MoveActivity,1970-01-01 02:24:31,1970-01-01 02:58:48,2057.0 +3,c1d3a2b0-0700-47b3-9347-64f80d17419d,sailing empty: sailing empty Carrier C,MoveActivity,1970-01-01 07:16:11,1970-01-01 07:50:28,2057.0 +1,800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,1970-01-01 00:34:17,1970-01-01 01:15:57,2500.0 +2,800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,1970-01-01 05:25:57,1970-01-01 06:07:37,2500.0 +3,800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,1970-01-01 09:35:57,1970-01-01 10:17:37,2500.0 +1,c3ba0354-0587-4b20-9781-7d65a2fd53a5,sailing full: sailing full Carrier C,MoveActivity,1970-01-01 01:15:57,1970-01-01 01:50:14,2057.0 +2,c3ba0354-0587-4b20-9781-7d65a2fd53a5,sailing full: sailing full Carrier C,MoveActivity,1970-01-01 06:07:37,1970-01-01 06:41:54,2057.0 +3,c3ba0354-0587-4b20-9781-7d65a2fd53a5,sailing full: sailing full Carrier C,MoveActivity,1970-01-01 10:17:37,1970-01-01 10:51:54,2057.0 +1,27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,1970-01-01 01:50:14,1970-01-01 02:24:31,2057.0 +2,27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,1970-01-01 06:41:54,1970-01-01 07:16:11,2057.0 +3,27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,1970-01-01 10:51:54,1970-01-01 11:26:11,2057.0 +1,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:46:26,2786.0 +2,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 00:00:00,1970-01-01 04:02:37,14557.0 +3,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 00:46:26,1970-01-01 04:49:03,14557.0 +4,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 04:02:37,1970-01-01 05:35:29,5572.0 +5,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 04:49:03,1970-01-01 05:35:29,2786.0 +6,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 05:35:29,1970-01-01 06:21:55,2786.0 +7,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 05:35:29,1970-01-01 08:54:17,11928.0 +8,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 06:21:55,1970-01-01 09:40:43,11928.0 +9,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 08:54:17,1970-01-01 10:27:09,5572.0 +10,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 09:40:43,1970-01-01 10:27:09,2786.0 +11,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 10:27:09,1970-01-01 11:13:35,2786.0 +12,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 10:27:09,1970-01-01 13:45:57,11928.0 +13,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 11:13:35,1970-01-01 14:32:23,11928.0 +14,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 13:45:57,1970-01-01 15:18:49,5572.0 +15,ee90456b-ce52-4a9d-8055-5e365abb7fbe,sequential_activity_subcycle:sequential_activity_subcycle Barge I,SequentialActivity,1970-01-01 14:32:23,1970-01-01 15:18:49,2786.0 +1,a48bda16-054d-4f8a-ba1d-0c6fcbc17bb8,sailing empty: sailing empty Barge I,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:46:26,2786.0 +2,a48bda16-054d-4f8a-ba1d-0c6fcbc17bb8,sailing empty: sailing empty Barge I,MoveActivity,1970-01-01 05:35:29,1970-01-01 06:21:55,2786.0 +3,a48bda16-054d-4f8a-ba1d-0c6fcbc17bb8,sailing empty: sailing empty Barge I,MoveActivity,1970-01-01 10:27:09,1970-01-01 11:13:35,2786.0 +1,dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,1970-01-01 03:20:57,1970-01-01 04:02:37,2500.0 +2,dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,1970-01-01 08:12:37,1970-01-01 08:54:17,2500.0 +3,dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,1970-01-01 13:04:17,1970-01-01 13:45:57,2500.0 +1,49ac4dfc-1526-4274-ae10-23ef85757b87,sailing full: sailing full Barge I,MoveActivity,1970-01-01 04:02:37,1970-01-01 04:49:03,2786.0 +2,49ac4dfc-1526-4274-ae10-23ef85757b87,sailing full: sailing full Barge I,MoveActivity,1970-01-01 08:54:17,1970-01-01 09:40:43,2786.0 +3,49ac4dfc-1526-4274-ae10-23ef85757b87,sailing full: sailing full Barge I,MoveActivity,1970-01-01 13:45:57,1970-01-01 14:32:23,2786.0 +1,b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,1970-01-01 04:49:03,1970-01-01 05:35:29,2786.0 +2,b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,1970-01-01 09:40:43,1970-01-01 10:27:09,2786.0 +3,b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,1970-01-01 14:32:23,1970-01-01 15:18:49,2786.0 +1,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:37:26,2246.0 +2,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 00:00:00,1970-01-01 01:57:37,7057.0 +3,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 00:37:26,1970-01-01 02:35:03,7057.0 +4,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 01:57:37,1970-01-01 03:12:29,4492.0 +5,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 02:35:03,1970-01-01 03:12:29,2246.0 +6,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 03:12:29,1970-01-01 03:49:55,2246.0 +7,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 03:12:29,1970-01-01 06:49:17,13008.0 +8,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 03:49:55,1970-01-01 07:26:43,13008.0 +9,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 06:49:17,1970-01-01 08:04:09,4492.0 +10,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 07:26:43,1970-01-01 08:04:09,2246.0 +11,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 08:04:09,1970-01-01 08:41:35,2246.0 +12,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 08:04:09,1970-01-01 11:40:57,13008.0 +13,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 08:41:35,1970-01-01 12:18:23,13008.0 +14,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 11:40:57,1970-01-01 12:55:49,4492.0 +15,7b39cdf3-9080-4771-a6b0-4cae7f9c480e,sequential_activity_subcycle:sequential_activity_subcycle Barge II,SequentialActivity,1970-01-01 12:18:23,1970-01-01 12:55:49,2246.0 +1,8fe35d98-01c6-4ba4-823e-ac53aca4dc47,sailing empty: sailing empty Barge II,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:37:26,2246.0 +2,8fe35d98-01c6-4ba4-823e-ac53aca4dc47,sailing empty: sailing empty Barge II,MoveActivity,1970-01-01 03:12:29,1970-01-01 03:49:55,2246.0 +3,8fe35d98-01c6-4ba4-823e-ac53aca4dc47,sailing empty: sailing empty Barge II,MoveActivity,1970-01-01 08:04:09,1970-01-01 08:41:35,2246.0 +1,2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,1970-01-01 01:15:57,1970-01-01 01:57:37,2500.0 +2,2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,1970-01-01 06:07:37,1970-01-01 06:49:17,2500.0 +3,2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,1970-01-01 10:59:17,1970-01-01 11:40:57,2500.0 +1,17074833-91ed-44f3-8264-a405b70f363a,sailing full: sailing full Barge II,MoveActivity,1970-01-01 01:57:37,1970-01-01 02:35:03,2246.0 +2,17074833-91ed-44f3-8264-a405b70f363a,sailing full: sailing full Barge II,MoveActivity,1970-01-01 06:49:17,1970-01-01 07:26:43,2246.0 +3,17074833-91ed-44f3-8264-a405b70f363a,sailing full: sailing full Barge II,MoveActivity,1970-01-01 11:40:57,1970-01-01 12:18:23,2246.0 +1,6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,1970-01-01 02:35:03,1970-01-01 03:12:29,2246.0 +2,6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,1970-01-01 07:26:43,1970-01-01 08:04:09,2246.0 +3,6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,1970-01-01 12:18:23,1970-01-01 12:55:49,2246.0 +1,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:39:36,2376.0 +2,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 00:00:00,1970-01-01 02:39:17,9557.0 +3,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 00:39:36,1970-01-01 03:18:53,9557.0 +4,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 02:39:17,1970-01-01 03:58:29,4752.0 +5,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 03:18:53,1970-01-01 03:58:29,2376.0 +6,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 03:58:29,1970-01-01 04:38:05,2376.0 +7,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 03:58:29,1970-01-01 07:30:57,12748.0 +8,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 04:38:05,1970-01-01 08:10:33,12748.0 +9,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 07:30:57,1970-01-01 08:50:09,4752.0 +10,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 08:10:33,1970-01-01 08:50:09,2376.0 +11,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 08:50:09,1970-01-01 09:29:45,2376.0 +12,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 08:50:09,1970-01-01 12:22:37,12748.0 +13,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 09:29:45,1970-01-01 13:02:13,12748.0 +14,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 12:22:37,1970-01-01 13:41:49,4752.0 +15,3cad57c1-573f-4c6e-a6cd-fefc25235564,sequential_activity_subcycle:sequential_activity_subcycle Barge III,SequentialActivity,1970-01-01 13:02:13,1970-01-01 13:41:49,2376.0 +1,29f641af-d9b2-41f8-b25d-9dbadde15857,sailing empty: sailing empty Barge III,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:39:36,2376.0 +2,29f641af-d9b2-41f8-b25d-9dbadde15857,sailing empty: sailing empty Barge III,MoveActivity,1970-01-01 03:58:29,1970-01-01 04:38:05,2376.0 +3,29f641af-d9b2-41f8-b25d-9dbadde15857,sailing empty: sailing empty Barge III,MoveActivity,1970-01-01 08:50:09,1970-01-01 09:29:45,2376.0 +1,22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,1970-01-01 01:57:37,1970-01-01 02:39:17,2500.0 +2,22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,1970-01-01 06:49:17,1970-01-01 07:30:57,2500.0 +3,22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,1970-01-01 11:40:57,1970-01-01 12:22:37,2500.0 +1,5d4d5efc-76af-4ce4-94f4-cd992a483dbe,sailing full: sailing full Barge III,MoveActivity,1970-01-01 02:39:17,1970-01-01 03:18:53,2376.0 +2,5d4d5efc-76af-4ce4-94f4-cd992a483dbe,sailing full: sailing full Barge III,MoveActivity,1970-01-01 07:30:57,1970-01-01 08:10:33,2376.0 +3,5d4d5efc-76af-4ce4-94f4-cd992a483dbe,sailing full: sailing full Barge III,MoveActivity,1970-01-01 12:22:37,1970-01-01 13:02:13,2376.0 +1,5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,1970-01-01 03:18:53,1970-01-01 03:58:29,2376.0 +2,5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,1970-01-01 08:10:33,1970-01-01 08:50:09,2376.0 +3,5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,1970-01-01 13:02:13,1970-01-01 13:41:49,2376.0 +1,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 00:00:00,1970-01-01 00:49:19,2959.0 +2,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 00:00:00,1970-01-01 05:25:57,19557.0 +3,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 00:49:19,1970-01-01 06:15:16,19557.0 +4,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 05:25:57,1970-01-01 07:04:35,5918.0 +5,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 06:15:16,1970-01-01 07:04:35,2959.0 +6,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 07:04:35,1970-01-01 07:53:54,2959.0 +7,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 07:04:35,1970-01-01 10:59:17,14082.0 +8,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 07:53:54,1970-01-01 11:48:36,14082.0 +9,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 10:59:17,1970-01-01 12:37:55,5918.0 +10,b51a25ea-b11f-4b27-94cc-8463b662ecf4,sequential_activity_subcycle:sequential_activity_subcycle Extra 1,SequentialActivity,1970-01-01 11:48:36,1970-01-01 12:37:55,2959.0 +1,f1425c0d-990a-47b5-86e2-56d5a3423c12,sailing empty: sailing empty Extra 1,MoveActivity,1970-01-01 00:00:00,1970-01-01 00:49:19,2959.0 +2,f1425c0d-990a-47b5-86e2-56d5a3423c12,sailing empty: sailing empty Extra 1,MoveActivity,1970-01-01 07:04:35,1970-01-01 07:53:54,2959.0 +1,a97ac758-41d0-4c32-b782-cd6c0d14cd17,loading: loading Extra 1,ShiftAmountActivity,1970-01-01 04:44:17,1970-01-01 05:25:57,2500.0 +2,a97ac758-41d0-4c32-b782-cd6c0d14cd17,loading: loading Extra 1,ShiftAmountActivity,1970-01-01 10:17:37,1970-01-01 10:59:17,2500.0 +1,9fa3e0b9-6ef3-450f-b16f-e26cb73bdfd6,sailing full: sailing full Extra 1,MoveActivity,1970-01-01 05:25:57,1970-01-01 06:15:16,2959.0 +2,9fa3e0b9-6ef3-450f-b16f-e26cb73bdfd6,sailing full: sailing full Extra 1,MoveActivity,1970-01-01 10:59:17,1970-01-01 11:48:36,2959.0 +1,5e4d1ba0-16b6-4d3b-924d-5c9ed930026b,unloading: unloading Extra 1,ShiftAmountActivity,1970-01-01 06:15:16,1970-01-01 07:04:35,2959.0 +2,5e4d1ba0-16b6-4d3b-924d-5c9ed930026b,unloading: unloading Extra 1,ShiftAmountActivity,1970-01-01 11:48:36,1970-01-01 12:37:55,2959.0 diff --git a/notebooks/best.csv b/notebooks/best.csv new file mode 100644 index 00000000..2555adcb --- /dev/null +++ b/notebooks/best.csv @@ -0,0 +1,16 @@ +scenario,# barges,cutter occupancy,duration,Σ cost,Σ MWh,Σ MWh waiting,nr barges,criterion,fleet +2,1,30.3,1.9828703703703703,55748,322,16.0075,1,Σ cost,['Extra 1'] +2,1,30.3,1.9828703703703703,55748,322,16.0075,1,duration,['Extra 1'] +2,1,30.3,1.9828703703703703,55748,322,16.0075,1,Σ MWh,['Extra 1'] +20,2,58.9,1.0551157407407408,33805,210,4.84,2,Σ cost,"['Barge I', 'Extra 2']" +20,2,58.9,1.0551157407407408,33805,210,4.84,2,duration,"['Barge I', 'Extra 2']" +20,2,58.9,1.0551157407407408,33805,210,4.84,2,Σ MWh,"['Barge I', 'Extra 2']" +75,3,78.3,0.815162037037037,28749,184,1.9256944444444444,3,Σ cost,"['Barge I', 'Extra 1', 'Extra 2']" +119,3,81.3,0.7861342592592592,29905,181,1.5923611111111111,3,duration,"['Carrier C', 'Barge I', 'Barge II']" +124,3,76.3,0.8345601851851852,32701,175,2.1548611111111113,3,Σ MWh,"['Carrier A', 'Carrier B', 'Barge II']" +194,4,100.0,0.6600925925925926,26087,159,0.0,4,Σ cost,"['Carrier C', 'Barge I', 'Extra 1', 'Extra 2']" +194,4,100.0,0.6600925925925926,26087,159,0.0,4,duration,"['Carrier C', 'Barge I', 'Extra 1', 'Extra 2']" +252,4,98.0,0.662962962962963,28551,156,0.13944444444444445,4,Σ MWh,"['Carrier A', 'Carrier B', 'Barge I', 'Barge II']" +256,5,100.0,0.6656481481481481,28286,157,0.0,5,Σ cost,"['Barge I', 'Barge III', 'Extra 1', 'Extra 2', 'Extra 3']" +345,5,100.0,0.6529050925925927,29568,160,0.0,5,duration,"['Carrier C', 'Barge I', 'Barge II', 'Barge III', 'Extra 2']" +348,5,100.0,0.6575578703703704,30502,149,0.0,5,Σ MWh,"['Carrier B', 'Carrier C', 'Barge II', 'Barge III', 'Extra 2']" diff --git a/notebooks/concepts.csv b/notebooks/concepts.csv new file mode 100644 index 00000000..d5423efe --- /dev/null +++ b/notebooks/concepts.csv @@ -0,0 +1,11 @@ +ConceptName,ConceptID,ConceptClass +Trench,6cb29e51-22e7-4b0e-958a-737cfa545336,Site +Reclamation,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Site +Carrier A,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,TransportProcessingResource +Carrier B,54a44899-202d-4acd-880e-ee2035955f5d,TransportProcessingResource +Carrier C,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,TransportProcessingResource +Barge I,c8219df4-6b15-466d-870f-0f9a430cf12a,TransportProcessingResource +Barge II,5defa630-9f7a-4a43-9d94-4ea3dc711878,TransportProcessingResource +Barge III,f18cc045-7a1f-4cad-9bd0-e807586a4f39,TransportProcessingResource +Extra 1,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,TransportProcessingResource +Cutter T,044e1549-efef-4b78-a6d5-17a1e997a9df,TransportProcessingResource diff --git a/notebooks/concepts_sites.csv b/notebooks/concepts_sites.csv new file mode 100644 index 00000000..83bd1ec6 --- /dev/null +++ b/notebooks/concepts_sites.csv @@ -0,0 +1,3 @@ +SiteName,SiteID,SiteClass +Trench,6cb29e51-22e7-4b0e-958a-737cfa545336,Site +Reclamation,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Site diff --git a/notebooks/concepts_vessels.csv b/notebooks/concepts_vessels.csv new file mode 100644 index 00000000..6d09c7fa --- /dev/null +++ b/notebooks/concepts_vessels.csv @@ -0,0 +1,9 @@ +VesselName,VesselID,VesselClass +Carrier A,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,TransportProcessingResource +Carrier B,54a44899-202d-4acd-880e-ee2035955f5d,TransportProcessingResource +Carrier C,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,TransportProcessingResource +Barge I,c8219df4-6b15-466d-870f-0f9a430cf12a,TransportProcessingResource +Barge II,5defa630-9f7a-4a43-9d94-4ea3dc711878,TransportProcessingResource +Barge III,f18cc045-7a1f-4cad-9bd0-e807586a4f39,TransportProcessingResource +Extra 1,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,TransportProcessingResource +Cutter T,044e1549-efef-4b78-a6d5-17a1e997a9df,TransportProcessingResource diff --git a/notebooks/figure4_24_cutters and barges scenarios.png b/notebooks/figure4_24_cutters and barges scenarios.png new file mode 100644 index 0000000000000000000000000000000000000000..52eb04ba7ee6afb959b3bc71404a60928f4ced16 GIT binary patch literal 511075 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

|_&q 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 z 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%0A+CynGB&9KPukNzMhOck$f#K{_Iz(0H!OiDC-I` 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 literal 0 HcmV?d00001 diff --git a/notebooks/resources.csv b/notebooks/resources.csv new file mode 100644 index 00000000..313af4b8 --- /dev/null +++ b/notebooks/resources.csv @@ -0,0 +1,71 @@ +ActivityID,ActivityName,ActivityClass,ConceptID,ConceptName,ConceptMode +31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,processor +f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,processor +800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,processor +dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,processor +2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,processor +22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,processor +a97ac758-41d0-4c32-b782-cd6c0d14cd17,loading: loading Extra 1,ShiftAmountActivity,044e1549-efef-4b78-a6d5-17a1e997a9df,Cutter T,processor +5e4d1ba0-16b6-4d3b-924d-5c9ed930026b,unloading: unloading Extra 1,ShiftAmountActivity,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,processor +a1c4bcbe-a173-41a2-991d-1b119f45e6b1,sailing empty: sailing empty Carrier A,MoveActivity,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,mover +57c8e1c1-084a-4f13-9968-5a311c06f034,sailing full: sailing full Carrier A,MoveActivity,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,mover +8882c57e-343a-487c-ab78-a7a735595347,sailing empty: sailing empty Carrier B,MoveActivity,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,mover +d8d5f971-f0bd-44df-9e7e-2aae9779ff1f,sailing full: sailing full Carrier B,MoveActivity,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,mover +c1d3a2b0-0700-47b3-9347-64f80d17419d,sailing empty: sailing empty Carrier C,MoveActivity,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,mover +c3ba0354-0587-4b20-9781-7d65a2fd53a5,sailing full: sailing full Carrier C,MoveActivity,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,mover +a48bda16-054d-4f8a-ba1d-0c6fcbc17bb8,sailing empty: sailing empty Barge I,MoveActivity,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,mover +49ac4dfc-1526-4274-ae10-23ef85757b87,sailing full: sailing full Barge I,MoveActivity,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,mover +8fe35d98-01c6-4ba4-823e-ac53aca4dc47,sailing empty: sailing empty Barge II,MoveActivity,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,mover +17074833-91ed-44f3-8264-a405b70f363a,sailing full: sailing full Barge II,MoveActivity,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,mover +29f641af-d9b2-41f8-b25d-9dbadde15857,sailing empty: sailing empty Barge III,MoveActivity,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,mover +5d4d5efc-76af-4ce4-94f4-cd992a483dbe,sailing full: sailing full Barge III,MoveActivity,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,mover +f1425c0d-990a-47b5-86e2-56d5a3423c12,sailing empty: sailing empty Extra 1,MoveActivity,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,mover +9fa3e0b9-6ef3-450f-b16f-e26cb73bdfd6,sailing full: sailing full Extra 1,MoveActivity,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,mover +31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,origin +f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,origin +800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,origin +dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,origin +2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,origin +22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,origin +a97ac758-41d0-4c32-b782-cd6c0d14cd17,loading: loading Extra 1,ShiftAmountActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,origin +5e4d1ba0-16b6-4d3b-924d-5c9ed930026b,unloading: unloading Extra 1,ShiftAmountActivity,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,origin +a1c4bcbe-a173-41a2-991d-1b119f45e6b1,sailing empty: sailing empty Carrier A,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +31db5da7-5646-4702-ae02-b5916d04b70f,loading: loading Carrier A,ShiftAmountActivity,5dbea8dd-ea2d-4500-9b16-5ad4640ef9c3,Carrier A,destination +57c8e1c1-084a-4f13-9968-5a311c06f034,sailing full: sailing full Carrier A,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +b92de4e2-dc1f-4c97-99c9-184ee40cf14e,unloading: unloading Carrier A,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +8882c57e-343a-487c-ab78-a7a735595347,sailing empty: sailing empty Carrier B,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +f0a40bbc-abcb-4aef-95ce-ef8e6b4fae3b,loading: loading Carrier B,ShiftAmountActivity,54a44899-202d-4acd-880e-ee2035955f5d,Carrier B,destination +d8d5f971-f0bd-44df-9e7e-2aae9779ff1f,sailing full: sailing full Carrier B,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +86cdebc8-2673-40b2-b5d9-a2e43ba36c2a,unloading: unloading Carrier B,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +c1d3a2b0-0700-47b3-9347-64f80d17419d,sailing empty: sailing empty Carrier C,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +800895e4-ad97-41fc-af9e-2c7dd6d1b991,loading: loading Carrier C,ShiftAmountActivity,5bd12dda-82f6-433d-b3ce-a27b5ef3c0c0,Carrier C,destination +c3ba0354-0587-4b20-9781-7d65a2fd53a5,sailing full: sailing full Carrier C,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +27da1e92-73e9-4e1b-b2f7-fe8ab01f9777,unloading: unloading Carrier C,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +a48bda16-054d-4f8a-ba1d-0c6fcbc17bb8,sailing empty: sailing empty Barge I,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +dab788ca-5433-4590-b9df-b1f31150e13d,loading: loading Barge I,ShiftAmountActivity,c8219df4-6b15-466d-870f-0f9a430cf12a,Barge I,destination +49ac4dfc-1526-4274-ae10-23ef85757b87,sailing full: sailing full Barge I,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +b4691a8b-7c47-4999-b531-dddb640b5f4b,unloading: unloading Barge I,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +8fe35d98-01c6-4ba4-823e-ac53aca4dc47,sailing empty: sailing empty Barge II,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +2e28c54e-639b-434f-b195-eedcab0ea4a1,loading: loading Barge II,ShiftAmountActivity,5defa630-9f7a-4a43-9d94-4ea3dc711878,Barge II,destination +17074833-91ed-44f3-8264-a405b70f363a,sailing full: sailing full Barge II,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +6ef7a3d3-6e1e-4cfc-a17c-ca48ebe690b2,unloading: unloading Barge II,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +29f641af-d9b2-41f8-b25d-9dbadde15857,sailing empty: sailing empty Barge III,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +22c70d82-2e97-4b6b-875b-7acff3cd617c,loading: loading Barge III,ShiftAmountActivity,f18cc045-7a1f-4cad-9bd0-e807586a4f39,Barge III,destination +5d4d5efc-76af-4ce4-94f4-cd992a483dbe,sailing full: sailing full Barge III,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +5bc128d9-5ea8-467d-919b-56fa4b88f345,unloading: unloading Barge III,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +f1425c0d-990a-47b5-86e2-56d5a3423c12,sailing empty: sailing empty Extra 1,MoveActivity,6cb29e51-22e7-4b0e-958a-737cfa545336,Trench,destination +a97ac758-41d0-4c32-b782-cd6c0d14cd17,loading: loading Extra 1,ShiftAmountActivity,e09f81e9-5b54-46fa-a150-ecd8dfa0d38c,Extra 1,destination +9fa3e0b9-6ef3-450f-b16f-e26cb73bdfd6,sailing full: sailing full Extra 1,MoveActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination +5e4d1ba0-16b6-4d3b-924d-5c9ed930026b,unloading: unloading Extra 1,ShiftAmountActivity,d0867026-aaa9-480b-bd5e-f7d5ed117f0e,Reclamation,destination diff --git a/notebooks/vessel_specs.csv b/notebooks/vessel_specs.csv new file mode 100644 index 00000000..04ec2da8 --- /dev/null +++ b/notebooks/vessel_specs.csv @@ -0,0 +1,11 @@ +vessel_name,rates [€/day],sailing empty [kW],loading [kW],sailing full [kW],unloading [kW],WAIT [kW],vessel_type +Carrier A,6000,1000,1000,2500,2500,20,barge +Carrier B,6000,1000,1000,2500,2500,20,barge +Carrier C,6000,1000,1000,2500,2500,20,barge +Barge I,5000,1000,1000,2500,2500,20,barge +Barge II,5000,1000,1000,2500,2500,20,barge +Barge III,5000,1000,1000,2500,2500,20,barge +Extra 1,4000,1000,1000,2500,2500,20,barge +Extra 2,4000,1000,1000,2500,2500,20,barge +Extra 3,4000,1000,1000,2500,2500,20,barge +Cutter T,25000,1000,15000,1000,1000,500,CSD From 5b026a7c100c33d9c3f22d8b7f7eabf37f2041e0 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Wed, 18 Oct 2023 11:24:48 +0200 Subject: [PATCH 083/100] integrating notebook 33 --- .../33_Accessibility_Dredging_NoTide.ipynb | 604 ++------ .../33_Port_Accessibility_Dredging.ipynb | 1300 +++++++++++++++++ 2 files changed, 1455 insertions(+), 449 deletions(-) create mode 100644 notebooks/33_Port_Accessibility_Dredging.ipynb diff --git a/notebooks/33_Accessibility_Dredging_NoTide.ipynb b/notebooks/33_Accessibility_Dredging_NoTide.ipynb index 884e0c08..3e0419f9 100644 --- a/notebooks/33_Accessibility_Dredging_NoTide.ipynb +++ b/notebooks/33_Accessibility_Dredging_NoTide.ipynb @@ -51,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 30, "id": "f22b1f5f", "metadata": {}, "outputs": [], @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 31, "id": "0f3edd62", "metadata": {}, "outputs": [], @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 32, "id": "20b9605b", "metadata": {}, "outputs": [], @@ -179,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 33, "id": "62c2dca3", "metadata": {}, "outputs": [], @@ -238,7 +238,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 34, "id": "7bfc8b04", "metadata": {}, "outputs": [], @@ -284,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 35, "id": "4d0d0350", "metadata": {}, "outputs": [], @@ -295,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 36, "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", "metadata": {}, "outputs": [], @@ -313,7 +313,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 37, "id": "4b621a99", "metadata": {}, "outputs": [], @@ -392,7 +392,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 38, "id": "d272ff48", "metadata": {}, "outputs": [], @@ -457,7 +457,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 39, "id": "a22e6a3f", "metadata": {}, "outputs": [], @@ -471,7 +471,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 40, "id": "67e9ea06", "metadata": {}, "outputs": [ @@ -484,7 +484,6 @@ "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "mover seagoing vessel destination berth\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover seagoing vessel destination offshore\n", @@ -493,74 +492,66 @@ "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 306620.2072004737\n", + "check dredging criteria 306620.2072004734\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 613240.4144009473\n", + "check dredging criteria 613240.4144009468\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 919860.6216014209\n", + "check dredging criteria 919860.6216014202\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 1226480.8288018946\n", + "check dredging criteria 1226480.8288018936\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 1533101.0360023682\n", + "check dredging criteria 1533101.036002367\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 1839721.2432028418\n", + "check dredging criteria 1839721.2432028404\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 2146341.4504033155\n", + "check dredging criteria 2146341.450403314\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", "mover dredging vessel destination berth\n", - "check dredging criteria 2452961.657603789\n", + "check dredging criteria 2452961.6576037877\n", "wait until we need to dredge again\n", "remaining_bed_level: 0.5\n", "waiting for 302400.0 seconds\n", - "delaying processing <__main__.MoveWhenDredgingNeeded object at 0x139d2a910>\n", "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", "mover dredging vessel destination dump\n", "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" @@ -573,7 +564,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 41, "id": "653367fa", "metadata": {}, "outputs": [ @@ -609,431 +600,287 @@ " \n", " 0\n", " 1970-01-01 00:00:00.000000\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 1\n", - " 1970-01-01 00:00:00.000000\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 2\n", - " 1970-01-01 00:00:00.000000\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 3\n", + " 1\n", " 1970-01-04 12:00:00.000000\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 4\n", + " 2\n", " 1970-01-04 12:00:00.000000\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 5\n", + " 3\n", " 1970-01-04 12:32:00.113018\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 6\n", - " 1970-01-04 13:10:20.207200\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 7\n", - " 1970-01-04 13:10:20.207200\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 8\n", + " 4\n", " 1970-01-04 13:10:20.207200\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 9\n", + " 5\n", " 1970-01-08 01:10:20.207200\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 10\n", + " 6\n", " 1970-01-08 01:10:20.207200\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 11\n", + " 7\n", " 1970-01-08 01:42:20.320219\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 12\n", - " 1970-01-08 02:20:40.414401\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 13\n", - " 1970-01-08 02:20:40.414401\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 14\n", + " 8\n", " 1970-01-08 02:20:40.414401\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 15\n", + " 9\n", " 1970-01-11 14:20:40.414401\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 16\n", + " 10\n", " 1970-01-11 14:20:40.414401\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 17\n", + " 11\n", " 1970-01-11 14:52:40.527419\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 18\n", - " 1970-01-11 15:31:00.621601\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 19\n", - " 1970-01-11 15:31:00.621601\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 20\n", + " 12\n", " 1970-01-11 15:31:00.621601\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 21\n", + " 13\n", " 1970-01-15 03:31:00.621601\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 22\n", + " 14\n", " 1970-01-15 03:31:00.621601\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 23\n", + " 15\n", " 1970-01-15 04:03:00.734620\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 24\n", - " 1970-01-15 04:41:20.828802\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 25\n", - " 1970-01-15 04:41:20.828802\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 26\n", + " 16\n", " 1970-01-15 04:41:20.828802\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 27\n", + " 17\n", " 1970-01-18 16:41:20.828802\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 28\n", + " 18\n", " 1970-01-18 16:41:20.828802\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 29\n", + " 19\n", " 1970-01-18 17:13:20.941820\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 30\n", - " 1970-01-18 17:51:41.036002\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 31\n", - " 1970-01-18 17:51:41.036002\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 32\n", + " 20\n", " 1970-01-18 17:51:41.036002\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 33\n", + " 21\n", " 1970-01-22 05:51:41.036002\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 34\n", + " 22\n", " 1970-01-22 05:51:41.036002\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 35\n", + " 23\n", " 1970-01-22 06:23:41.149021\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 36\n", - " 1970-01-22 07:02:01.243203\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 37\n", - " 1970-01-22 07:02:01.243203\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 38\n", + " 24\n", " 1970-01-22 07:02:01.243203\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 39\n", + " 25\n", " 1970-01-25 19:02:01.243203\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 40\n", + " 26\n", " 1970-01-25 19:02:01.243203\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 41\n", + " 27\n", " 1970-01-25 19:34:01.356221\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 42\n", - " 1970-01-25 20:12:21.450403\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 43\n", - " 1970-01-25 20:12:21.450403\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 44\n", + " 28\n", " 1970-01-25 20:12:21.450403\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 45\n", + " 29\n", " 1970-01-29 08:12:21.450403\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 46\n", + " 30\n", " 1970-01-29 08:12:21.450403\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 47\n", + " 31\n", " 1970-01-29 08:44:21.563422\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", " \n", " \n", - " 48\n", - " 1970-01-29 09:22:41.657604\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_START\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 49\n", - " 1970-01-29 09:22:41.657604\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", - " WAIT_STOP\n", - " {}\n", - " {}\n", - " \n", - " \n", - " 50\n", + " 32\n", " 1970-01-29 09:22:41.657604\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 51\n", + " 33\n", " 1970-02-01 21:22:41.657604\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", " \n", " \n", - " 52\n", + " 34\n", " 1970-02-01 21:22:41.657604\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " START\n", " {}\n", " {}\n", " \n", " \n", - " 53\n", + " 35\n", " 1970-02-01 21:54:41.770622\n", - " 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d\n", + " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", " STOP\n", " {}\n", " {}\n", @@ -1044,119 +891,83 @@ ], "text/plain": [ " Timestamp ActivityID \\\n", - "0 1970-01-01 00:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "1 1970-01-01 00:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "2 1970-01-01 00:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "3 1970-01-04 12:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "4 1970-01-04 12:00:00.000000 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "5 1970-01-04 12:32:00.113018 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "6 1970-01-04 13:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "7 1970-01-04 13:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "8 1970-01-04 13:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "9 1970-01-08 01:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "10 1970-01-08 01:10:20.207200 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "11 1970-01-08 01:42:20.320219 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "12 1970-01-08 02:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "13 1970-01-08 02:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "14 1970-01-08 02:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "15 1970-01-11 14:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "16 1970-01-11 14:20:40.414401 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "17 1970-01-11 14:52:40.527419 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "18 1970-01-11 15:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "19 1970-01-11 15:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "20 1970-01-11 15:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "21 1970-01-15 03:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "22 1970-01-15 03:31:00.621601 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "23 1970-01-15 04:03:00.734620 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "24 1970-01-15 04:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "25 1970-01-15 04:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "26 1970-01-15 04:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "27 1970-01-18 16:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "28 1970-01-18 16:41:20.828802 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "29 1970-01-18 17:13:20.941820 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "30 1970-01-18 17:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "31 1970-01-18 17:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "32 1970-01-18 17:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "33 1970-01-22 05:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "34 1970-01-22 05:51:41.036002 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "35 1970-01-22 06:23:41.149021 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "36 1970-01-22 07:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "37 1970-01-22 07:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "38 1970-01-22 07:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "39 1970-01-25 19:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "40 1970-01-25 19:02:01.243203 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "41 1970-01-25 19:34:01.356221 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "42 1970-01-25 20:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "43 1970-01-25 20:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "44 1970-01-25 20:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "45 1970-01-29 08:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "46 1970-01-29 08:12:21.450403 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "47 1970-01-29 08:44:21.563422 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "48 1970-01-29 09:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "49 1970-01-29 09:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "50 1970-01-29 09:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "51 1970-02-01 21:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "52 1970-02-01 21:22:41.657604 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", - "53 1970-02-01 21:54:41.770622 36d84ac4-5a80-4ba0-9ee2-bae4e0d8309d \n", + "0 1970-01-01 00:00:00.000000 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "1 1970-01-04 12:00:00.000000 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "2 1970-01-04 12:00:00.000000 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "3 1970-01-04 12:32:00.113018 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "4 1970-01-04 13:10:20.207200 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "5 1970-01-08 01:10:20.207200 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "6 1970-01-08 01:10:20.207200 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "7 1970-01-08 01:42:20.320219 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "8 1970-01-08 02:20:40.414401 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "9 1970-01-11 14:20:40.414401 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "10 1970-01-11 14:20:40.414401 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "11 1970-01-11 14:52:40.527419 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "12 1970-01-11 15:31:00.621601 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "13 1970-01-15 03:31:00.621601 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "14 1970-01-15 03:31:00.621601 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "15 1970-01-15 04:03:00.734620 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "16 1970-01-15 04:41:20.828802 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "17 1970-01-18 16:41:20.828802 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "18 1970-01-18 16:41:20.828802 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "19 1970-01-18 17:13:20.941820 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "20 1970-01-18 17:51:41.036002 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "21 1970-01-22 05:51:41.036002 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "22 1970-01-22 05:51:41.036002 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "23 1970-01-22 06:23:41.149021 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "24 1970-01-22 07:02:01.243203 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "25 1970-01-25 19:02:01.243203 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "26 1970-01-25 19:02:01.243203 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "27 1970-01-25 19:34:01.356221 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "28 1970-01-25 20:12:21.450403 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "29 1970-01-29 08:12:21.450403 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "30 1970-01-29 08:12:21.450403 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "31 1970-01-29 08:44:21.563422 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "32 1970-01-29 09:22:41.657604 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "33 1970-02-01 21:22:41.657604 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "34 1970-02-01 21:22:41.657604 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "35 1970-02-01 21:54:41.770622 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", "\n", " ActivityState ObjectState ActivityLabel \n", - "0 WAIT_START {} {} \n", - "1 WAIT_STOP {} {} \n", - "2 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", - "3 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", - "4 START {} {} \n", - "5 STOP {} {} \n", - "6 WAIT_START {} {} \n", - "7 WAIT_STOP {} {} \n", + "0 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "1 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "2 START {} {} \n", + "3 STOP {} {} \n", + "4 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "5 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "6 START {} {} \n", + "7 STOP {} {} \n", "8 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", "9 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", "10 START {} {} \n", "11 STOP {} {} \n", - "12 WAIT_START {} {} \n", - "13 WAIT_STOP {} {} \n", - "14 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", - "15 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", - "16 START {} {} \n", - "17 STOP {} {} \n", - "18 WAIT_START {} {} \n", - "19 WAIT_STOP {} {} \n", + "12 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "13 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "14 START {} {} \n", + "15 STOP {} {} \n", + "16 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "17 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "18 START {} {} \n", + "19 STOP {} {} \n", "20 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", "21 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", "22 START {} {} \n", "23 STOP {} {} \n", - "24 WAIT_START {} {} \n", - "25 WAIT_STOP {} {} \n", - "26 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", - "27 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", - "28 START {} {} \n", - "29 STOP {} {} \n", - "30 WAIT_START {} {} \n", - "31 WAIT_STOP {} {} \n", + "24 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "25 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "26 START {} {} \n", + "27 STOP {} {} \n", + "28 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "29 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "30 START {} {} \n", + "31 STOP {} {} \n", "32 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", "33 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", "34 START {} {} \n", - "35 STOP {} {} \n", - "36 WAIT_START {} {} \n", - "37 WAIT_STOP {} {} \n", - "38 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", - "39 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", - "40 START {} {} \n", - "41 STOP {} {} \n", - "42 WAIT_START {} {} \n", - "43 WAIT_STOP {} {} \n", - "44 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", - "45 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", - "46 START {} {} \n", - "47 STOP {} {} \n", - "48 WAIT_START {} {} \n", - "49 WAIT_STOP {} {} \n", - "50 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", - "51 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", - "52 START {} {} \n", - "53 STOP {} {} " + "35 STOP {} {} " ] }, - "execution_count": 12, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1185,7 +996,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 42, "id": "e96e09e8", "metadata": {}, "outputs": [ @@ -1352,7 +1163,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 43, "id": "f920e9e2", "metadata": {}, "outputs": [ @@ -1463,111 +1274,6 @@ "# Inspect seagoing vessel log\n", "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" ] - }, - { - "cell_type": "markdown", - "id": "3a8db3b7", - "metadata": {}, - "source": [ - "##### 5.2. Visualize gantt chart" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "fba2bcc6", - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'sailing_crit' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Input \u001b[0;32mIn [15]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m data \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 3\u001b[0m layout \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlayout\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 5\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[1;32m 6\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 7\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel01\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[0;32m----> 8\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[\u001b[43msailing_crit\u001b[49m\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[1;32m 9\u001b[0m })\n\u001b[1;32m 10\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[1;32m 11\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 12\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:[vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat(), vessel02\u001b[38;5;241m.\u001b[39mlog[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misoformat()],\n\u001b[1;32m 13\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:[sailing_crit\u001b[38;5;241m.\u001b[39mminimum,sailing_crit\u001b[38;5;241m.\u001b[39mminimum],\n\u001b[1;32m 14\u001b[0m })\n\u001b[1;32m 17\u001b[0m data\u001b[38;5;241m.\u001b[39mappend({\n\u001b[1;32m 18\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDepth\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df\u001b[38;5;241m.\u001b[39mindex,\n\u001b[1;32m 20\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m\"\u001b[39m:depth_df[sailing_crit\u001b[38;5;241m.\u001b[39mcondition],\n\u001b[1;32m 21\u001b[0m })\n", - "\u001b[0;31mNameError\u001b[0m: name 'sailing_crit' is not defined" - ] - } - ], - "source": [ - "res = plot.get_gantt_chart([vessel01, vessel02], y_scale=\"numbers\", static=True, id_map=[activities_dredging_vessel, activities_seagoing_vessel])\n", - "data = res['data']\n", - "layout = res['layout']\n", - "\n", - "data.append({\n", - " \"name\": \"sailing_crit\",\n", - " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", - "})\n", - "data.append({\n", - " \"name\": \"sailing_crit\",\n", - " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", - "})\n", - "\n", - "\n", - "data.append({\n", - " \"name\": \"Depth\",\n", - " \"x\":depth_df.index,\n", - " \"y\":depth_df[sailing_crit.condition],\n", - "})\n", - "\n", - "\n", - "data.append({\n", - " \"name\": \"loading_crit\",\n", - " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", - "})\n", - "data.append({\n", - " \"name\": \"loading_crit\",\n", - " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", - "})\n", - "\n", - "go.Figure(data=data, layout=layout)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "29d1f881", - "metadata": {}, - "outputs": [], - "source": [ - "plot.get_gantt_chart(\n", - " [vessel01, vessel02],\n", - " id_map=[activities_dredging_vessel, activities_seagoing_vessel],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "df4b670f", - "metadata": {}, - "source": [ - "##### 5.3. Visualize container volume developments" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c0d5b563", - "metadata": {}, - "outputs": [], - "source": [ - "fig = plot.get_step_chart([vessel01, berth, dump])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b380b201", - "metadata": {}, - "outputs": [], - "source": [ - "fig = plot.get_step_chart([vessel02, berth, offshore])" - ] } ], "metadata": { diff --git a/notebooks/33_Port_Accessibility_Dredging.ipynb b/notebooks/33_Port_Accessibility_Dredging.ipynb new file mode 100644 index 00000000..817851b2 --- /dev/null +++ b/notebooks/33_Port_Accessibility_Dredging.ipynb @@ -0,0 +1,1300 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3b8fbfc7", + "metadata": {}, + "source": [ + "\n", + "### Maintenance dredging due to keeping the port accessible\n", + "\n", + "![Alt text](image-1.png)\n", + "\n", + "* This notebook aims to formulate the port accessibility in openclsim simulation when addressing the interaction between one dredging vessel and one seagoing vessel.\n", + "\n", + "* The concept of accessibility is defined based on the picture above. When the available water depth is higher than the required water depth for the seagoing vessel, the vessel can sail through the port. Otherwise, the dredging vessel should start its job and keep the port accessible by dredging a certain amount of sediment.\n", + "\n", + "The following variables are used:\n", + "\n", + "```\n", + "AWL: Actual (as in at this moment) Water Level (meters)\n", + "LAT: Lowest Astronomical Tide (meters)\n", + "MBL: Maintained Bed Level (meters)\n", + "T: Draught (meters)\n", + "```\n", + "Then the criteria for accessibility can be defined as follows.\n", + "\n", + "* required water depth = ```T``` + safety margin for under keel clearance\n", + "\n", + "* available water depth = ```AWL - MBL```\n", + "\n", + "Considerations\n", + "\n", + "* A dredging criteria level is defined to determine a level that when reaches the ```MBL```, the dredging operation is triggered. Dredging criteria level is considered as a safety margin to guarantee the nautical depth. When this safety margin is lower than the ```MBL```, no dredging is needed and the location is accessible. Otherwise, dredging is triggered.\n", + "\n", + "* Dredging criteria level depends on errors in surveys and uncertainties in dredging caused by different rates of sedimentation. \n", + "\n", + "* Dredging criteria level = ```MBL``` - errors in surveys - uncertainties in dredging (dredging tolerance)\n", + "\n", + "* To dredge navigation channels, ```LAT``` can be ignored because navigation channels are designed based on ```LAT``` and no vessel has tidal windows. When sailing through channels, vessels sail during the neap tide and not tidal restriction is applied.\n", + "\n", + "* For berth location, ```LAT``` is considered as one of the determining factors when the minimum water level is a bit lower than ```LAT```. In this case, vessels need to be at the port during the ebb tide. Dredging criteria level are also taken into account to determine how frequently the berth should be dredged." + ] + }, + { + "cell_type": "markdown", + "id": "6e50d2c1", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "f22b1f5f", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "\n", + "import networkx as nx\n", + "import shapely\n", + "import shapely.geometry\n", + "import pyproj\n", + "\n", + "\n", + "import datetime as dt\n", + "import time\n", + "import simpy\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plugins as plugin\n", + "import openclsim.plot as plot\n", + "import opentnsim\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import plotly.graph_objs as go\n", + "import folium" + ] + }, + { + "cell_type": "markdown", + "id": "f5abfeb5", + "metadata": {}, + "source": [ + "#### 1. Initialise simpy environment" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "0f3edd62", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "31ace8fe", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "20b9605b", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "DredgedSite = type(\n", + " \"DredgedSite\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " core.HasDredging,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "Site = type(\n", + " \"Site\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.ContainerDependentMovable,\n", + " core.HasResource,\n", + " core.HasContainer,\n", + " core.Processor,\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.LoadingFunction,\n", + " core.UnloadingFunction,\n", + " # capture extra metadata to make sure we don't have leftover arguments\n", + " opentnsim.core.ExtraMetadata,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "bdee023c", + "metadata": {}, + "source": [ + "#### 3. Create objects" + ] + }, + { + "cell_type": "markdown", + "id": "0441d34f", + "metadata": {}, + "source": [ + "##### 3.1. Create site objects" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "62c2dca3", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for offshore\n", + "location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + "data_offshore = {\n", + " \"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"capacity\": 100,\n", + " \"level\": 0,\n", + "}\n", + "offshore = Site(**data_offshore)\n", + "\n", + "# prepare input data for berth\n", + "location_berth = shapely.geometry.Point(4.062705498083785, 51.95909715255291)\n", + "data_berth = {\n", + " \"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 80,\n", + " \"nr_resources\": 1,\n", + " # actual bed level is 0.5 above\n", + " \"ABL\": -18,\n", + " # dredging criterion level\n", + " \"DCL\": -17.5,\n", + " # dredge bed level (after dredging)\n", + " \"DBL\": -18.5,\n", + " # sedimentation rate of 1m per week, in m/s\n", + " \"SR\": 1 / (3600 * 24 * 7)\n", + " \n", + "}\n", + "berth = DredgedSite(**data_berth)\n", + "\n", + "# prepare input data for dump\n", + "location_dump = shapely.geometry.Point(4.1795229742823, 52.11590591837503)\n", + "data_dump = {\n", + " \"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0,\n", + "}\n", + "dump = Site(**data_dump)" + ] + }, + { + "cell_type": "markdown", + "id": "82a0a144", + "metadata": {}, + "source": [ + "##### 3.2. Create vessel objects" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "7bfc8b04", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01 (dredging vessel)\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging vessel\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 10,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 0.5,\n", + " \"compute_v\": lambda x: 10 + 2 * x,\n", + "}\n", + "# instantiate vessel_01\n", + "vessel01 = TransportProcessingResource(**data_vessel01)\n", + "assert not vessel01.metadata\n", + "\n", + "\n", + "# prepare input data for vessel_02 (seagoing vessel)\n", + "data_vessel02 = {\n", + " \"env\": my_env,\n", + " \"name\": \"seagoing vessel\",\n", + " \"geometry\": location_offshore,\n", + " \"capacity\": 10,\n", + " \"level\": 5,\n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 0.5,\n", + " \"compute_v\": lambda x: 15 + 2 * x,\n", + "}\n", + "# instantiate vessel_02\n", + "vessel02 = TransportProcessingResource(**data_vessel02)\n", + "assert not vessel02.metadata" + ] + }, + { + "cell_type": "markdown", + "id": "fab4c27a", + "metadata": {}, + "source": [ + "##### 3.3. Creat activity objects" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "4d0d0350", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", + "metadata": {}, + "outputs": [], + "source": [ + "# Define custom activities with Depth Plugin\n", + "MoveWhenDredgingNeeded = type(\n", + " \"MoveWhenDredgingNeeded\",\n", + " (\n", + " plugin.HasDredgePluginActivity,\n", + " model.MoveActivity,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "4b621a99", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify the amount of container and duration of activities\n", + "amount = 10\n", + "duration = 200\n", + "\n", + "\n", + "dredge_criteria = plugin.DredgeCriterion(\n", + " name=\"dredge_crit\",\n", + ")\n", + "\n", + "# Specify dredging subprocesses\n", + "dredging_subprocesses = [\n", + " MoveWhenDredgingNeeded(\n", + " env=my_env,\n", + " name=\"sailing empty dredging vessel\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=berth,\n", + " dredge_criteria=dredge_criteria,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"loading dredging vessel\",\n", + " registry=registry,\n", + " processor=vessel01,\n", + " origin=berth,\n", + " destination=vessel01,\n", + " amount=amount,\n", + " duration=50 * amount,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full dredging vessel\",\n", + " registry=registry,\n", + " mover=vessel01,\n", + " destination=dump,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"unloading dredging vessel\",\n", + " registry=registry,\n", + " processor=vessel01,\n", + " origin=vessel01,\n", + " destination=dump,\n", + " amount=amount,\n", + " duration=20 * amount,\n", + " ),\n", + "]\n", + "\n", + "# Define activities of the dredging vessel\n", + "activities_dredging_vessel = model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while sequential activity dredging vessel\",\n", + " registry=registry,\n", + " sub_processes=[\n", + " model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential activity subcycle dredging vessel\",\n", + " registry=registry,\n", + " sub_processes=dredging_subprocesses,\n", + " )\n", + " ],\n", + " condition_event=[\n", + " {\n", + " \"type\": \"container\",\n", + " \"concept\": berth,\n", + " \"state\": \"empty\",\n", + " \"id_\": \"default_reservations\",\n", + " }\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "d272ff48", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify seagoing subprocesses\n", + "requested_resources = {}\n", + "seagoing_subprocesses = [\n", + " model.BasicActivity(\n", + " env=my_env, name=\"interval time\", registry=registry, duration=200\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full seagoing vessel\",\n", + " registry=registry,\n", + " mover=vessel02,\n", + " destination=berth,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"unloading seagoing vessel\",\n", + " registry=registry,\n", + " processor=vessel02,\n", + " origin=vessel02,\n", + " destination=berth,\n", + " amount=amount,\n", + " duration=30 * amount,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty seagoing vessel\",\n", + " registry=registry,\n", + " mover=vessel02,\n", + " destination=offshore,\n", + " ),\n", + "]\n", + "\n", + "# Define activities of the seagoing vessel\n", + "activities_seagoing_vessel = model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while sequential activity dredging vessel\",\n", + " registry=registry,\n", + " sub_processes=seagoing_subprocesses,\n", + " condition_event=[\n", + " {\n", + " \"type\": \"container\",\n", + " \"concept\": vessel02,\n", + " \"state\": \"empty\",\n", + " \"id_\": \"default_reservations\",\n", + " }\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "7d773f88", + "metadata": {}, + "source": [ + "#### 4. Register activities and run simpy" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "a22e6a3f", + "metadata": {}, + "outputs": [], + "source": [ + "# register dredging activities\n", + "model.register_processes([activities_dredging_vessel])\n", + "\n", + "# register seagoing activities\n", + "model.register_processes([activities_seagoing_vessel])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "67e9ea06", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover dredging vessel destination berth\n", + "check dredging criteria 0\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "mover seagoing vessel destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover seagoing vessel destination offshore\n", + "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 306620.2072004734\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 613240.4144009468\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 919860.6216014202\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 1226480.8288018936\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 1533101.036002367\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 1839721.2432028404\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 2146341.450403314\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging vessel destination berth\n", + "check dredging criteria 2452961.6576037877\n", + "wait until we need to dredge again\n", + "remaining_bed_level: 0.5\n", + "waiting for 302400.0 seconds\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover dredging vessel destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "653367fa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TimestampActivityIDActivityStateObjectStateActivityLabel
01970-01-01 00:00:00.0000006a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
11970-01-04 12:00:00.0000006a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
21970-01-04 12:00:00.0000006a748f77-4db0-4fc7-9420-8191211504d8START{}{}
31970-01-04 12:32:00.1130186a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
41970-01-04 13:10:20.2072006a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
51970-01-08 01:10:20.2072006a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
61970-01-08 01:10:20.2072006a748f77-4db0-4fc7-9420-8191211504d8START{}{}
71970-01-08 01:42:20.3202196a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
81970-01-08 02:20:40.4144016a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
91970-01-11 14:20:40.4144016a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
101970-01-11 14:20:40.4144016a748f77-4db0-4fc7-9420-8191211504d8START{}{}
111970-01-11 14:52:40.5274196a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
121970-01-11 15:31:00.6216016a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
131970-01-15 03:31:00.6216016a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
141970-01-15 03:31:00.6216016a748f77-4db0-4fc7-9420-8191211504d8START{}{}
151970-01-15 04:03:00.7346206a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
161970-01-15 04:41:20.8288026a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
171970-01-18 16:41:20.8288026a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
181970-01-18 16:41:20.8288026a748f77-4db0-4fc7-9420-8191211504d8START{}{}
191970-01-18 17:13:20.9418206a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
201970-01-18 17:51:41.0360026a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
211970-01-22 05:51:41.0360026a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
221970-01-22 05:51:41.0360026a748f77-4db0-4fc7-9420-8191211504d8START{}{}
231970-01-22 06:23:41.1490216a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
241970-01-22 07:02:01.2432036a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
251970-01-25 19:02:01.2432036a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
261970-01-25 19:02:01.2432036a748f77-4db0-4fc7-9420-8191211504d8START{}{}
271970-01-25 19:34:01.3562216a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
281970-01-25 20:12:21.4504036a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
291970-01-29 08:12:21.4504036a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
301970-01-29 08:12:21.4504036a748f77-4db0-4fc7-9420-8191211504d8START{}{}
311970-01-29 08:44:21.5634226a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
321970-01-29 09:22:41.6576046a748f77-4db0-4fc7-9420-8191211504d8WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
331970-02-01 21:22:41.6576046a748f77-4db0-4fc7-9420-8191211504d8WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
341970-02-01 21:22:41.6576046a748f77-4db0-4fc7-9420-8191211504d8START{}{}
351970-02-01 21:54:41.7706226a748f77-4db0-4fc7-9420-8191211504d8STOP{}{}
\n", + "
" + ], + "text/plain": [ + " Timestamp ActivityID \\\n", + "0 1970-01-01 00:00:00.000000 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "1 1970-01-04 12:00:00.000000 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "2 1970-01-04 12:00:00.000000 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "3 1970-01-04 12:32:00.113018 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "4 1970-01-04 13:10:20.207200 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "5 1970-01-08 01:10:20.207200 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "6 1970-01-08 01:10:20.207200 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "7 1970-01-08 01:42:20.320219 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "8 1970-01-08 02:20:40.414401 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "9 1970-01-11 14:20:40.414401 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "10 1970-01-11 14:20:40.414401 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "11 1970-01-11 14:52:40.527419 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "12 1970-01-11 15:31:00.621601 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "13 1970-01-15 03:31:00.621601 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "14 1970-01-15 03:31:00.621601 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "15 1970-01-15 04:03:00.734620 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "16 1970-01-15 04:41:20.828802 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "17 1970-01-18 16:41:20.828802 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "18 1970-01-18 16:41:20.828802 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "19 1970-01-18 17:13:20.941820 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "20 1970-01-18 17:51:41.036002 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "21 1970-01-22 05:51:41.036002 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "22 1970-01-22 05:51:41.036002 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "23 1970-01-22 06:23:41.149021 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "24 1970-01-22 07:02:01.243203 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "25 1970-01-25 19:02:01.243203 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "26 1970-01-25 19:02:01.243203 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "27 1970-01-25 19:34:01.356221 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "28 1970-01-25 20:12:21.450403 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "29 1970-01-29 08:12:21.450403 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "30 1970-01-29 08:12:21.450403 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "31 1970-01-29 08:44:21.563422 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "32 1970-01-29 09:22:41.657604 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "33 1970-02-01 21:22:41.657604 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "34 1970-02-01 21:22:41.657604 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "35 1970-02-01 21:54:41.770622 6a748f77-4db0-4fc7-9420-8191211504d8 \n", + "\n", + " ActivityState ObjectState ActivityLabel \n", + "0 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "1 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "2 START {} {} \n", + "3 STOP {} {} \n", + "4 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "5 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "6 START {} {} \n", + "7 STOP {} {} \n", + "8 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "9 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "10 START {} {} \n", + "11 STOP {} {} \n", + "12 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "13 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "14 START {} {} \n", + "15 STOP {} {} \n", + "16 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "17 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "18 START {} {} \n", + "19 STOP {} {} \n", + "20 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "21 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "22 START {} {} \n", + "23 STOP {} {} \n", + "24 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "25 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "26 START {} {} \n", + "27 STOP {} {} \n", + "28 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "29 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "30 START {} {} \n", + "31 STOP {} {} \n", + "32 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", + "33 WAIT_STOP {} {'type': 'plugin', 'ref': 'dredging'} \n", + "34 START {} {} \n", + "35 STOP {} {} " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# the dredging log is now not in the ship but in the plugin....\n", + "dredging_cycle_log_df = pd.DataFrame(activities_dredging_vessel.sub_processes[0].sub_processes[0].logbook)\n", + "dredging_cycle_log_df" + ] + }, + { + "cell_type": "markdown", + "id": "37887fe1", + "metadata": {}, + "source": [ + "#### 5. Inspect results" + ] + }, + { + "cell_type": "markdown", + "id": "52e8354b", + "metadata": {}, + "source": [ + "##### 5.1. Inspect logs" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "e96e09e8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStategeometrycontainer level
0sailing empty dredging vessel1970-01-04 12:00:00.000000STARTPOINT (4.1795229742823 52.11590591837503)0.0
1sailing empty dredging vessel1970-01-04 12:32:00.113018STOPPOINT (4.062705498083785 51.95909715255291)0.0
2loading dredging vessel1970-01-04 12:32:00.113018STARTPOINT (4.062705498083785 51.95909715255291)0.0
3loading dredging vessel1970-01-04 12:40:20.113018STOPPOINT (4.062705498083785 51.95909715255291)10.0
4sailing full dredging vessel1970-01-04 12:40:20.113018STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
67loading dredging vessel1970-02-01 22:03:01.770622STOPPOINT (4.062705498083785 51.95909715255291)5.0
68sailing full dredging vessel1970-02-01 22:03:01.770622STARTPOINT (4.062705498083785 51.95909715255291)5.0
69sailing full dredging vessel1970-02-01 22:32:07.327912STOPPOINT (4.1795229742823 52.11590591837503)5.0
70unloading dredging vessel1970-02-01 22:32:07.327912STARTPOINT (4.1795229742823 52.11590591837503)5.0
71unloading dredging vessel1970-02-01 22:35:27.327912STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", + "

72 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sailing empty dredging vessel 1970-01-04 12:00:00.000000 START \n", + "1 sailing empty dredging vessel 1970-01-04 12:32:00.113018 STOP \n", + "2 loading dredging vessel 1970-01-04 12:32:00.113018 START \n", + "3 loading dredging vessel 1970-01-04 12:40:20.113018 STOP \n", + "4 sailing full dredging vessel 1970-01-04 12:40:20.113018 START \n", + ".. ... ... ... \n", + "67 loading dredging vessel 1970-02-01 22:03:01.770622 STOP \n", + "68 sailing full dredging vessel 1970-02-01 22:03:01.770622 START \n", + "69 sailing full dredging vessel 1970-02-01 22:32:07.327912 STOP \n", + "70 unloading dredging vessel 1970-02-01 22:32:07.327912 START \n", + "71 unloading dredging vessel 1970-02-01 22:35:27.327912 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", + "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", + ".. ... ... \n", + "67 POINT (4.062705498083785 51.95909715255291) 5.0 \n", + "68 POINT (4.062705498083785 51.95909715255291) 5.0 \n", + "69 POINT (4.1795229742823 52.11590591837503) 5.0 \n", + "70 POINT (4.1795229742823 52.11590591837503) 5.0 \n", + "71 POINT (4.1795229742823 52.11590591837503) 0.0 \n", + "\n", + "[72 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Inspect dredging vessel log\n", + "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "f920e9e2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStategeometrycontainer level
0sailing full seagoing vessel1970-01-01 00:03:20.000000STARTPOINT (3.637610458072877 52.10701582514347)5
1sailing full seagoing vessel1970-01-01 00:38:13.474629STOPPOINT (4.062705498083785 51.95909715255291)5
2unloading seagoing vessel1970-01-01 00:38:13.474629STARTPOINT (4.062705498083785 51.95909715255291)5
3unloading seagoing vessel1970-01-01 00:43:13.474629STOPPOINT (4.062705498083785 51.95909715255291)0
4sailing empty seagoing vessel1970-01-01 00:43:13.474629STARTPOINT (4.062705498083785 51.95909715255291)0
5sailing empty seagoing vessel1970-01-01 01:20:26.514232STOPPOINT (3.637610458072877 52.10701582514347)0
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sailing full seagoing vessel 1970-01-01 00:03:20.000000 START \n", + "1 sailing full seagoing vessel 1970-01-01 00:38:13.474629 STOP \n", + "2 unloading seagoing vessel 1970-01-01 00:38:13.474629 START \n", + "3 unloading seagoing vessel 1970-01-01 00:43:13.474629 STOP \n", + "4 sailing empty seagoing vessel 1970-01-01 00:43:13.474629 START \n", + "5 sailing empty seagoing vessel 1970-01-01 01:20:26.514232 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (3.637610458072877 52.10701582514347) 5 \n", + "1 POINT (4.062705498083785 51.95909715255291) 5 \n", + "2 POINT (4.062705498083785 51.95909715255291) 5 \n", + "3 POINT (4.062705498083785 51.95909715255291) 0 \n", + "4 POINT (4.062705498083785 51.95909715255291) 0 \n", + "5 POINT (3.637610458072877 52.10701582514347) 0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Inspect seagoing vessel log\n", + "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From b54d91cd454dda1b0a72e37e9f207936229bdfc6 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Thu, 19 Oct 2023 10:05:24 +0200 Subject: [PATCH 084/100] Cleanups --- .../33_Accessibility_Dredging_NoTide.ipynb | 220 +- notebooks/34_fleet_optimization.ipynb | 12239 ++++++++++++++++ src/openclsim/core/__init__.py | 6 - src/openclsim/core/access.py | 82 - 4 files changed, 12343 insertions(+), 204 deletions(-) create mode 100644 notebooks/34_fleet_optimization.ipynb diff --git a/notebooks/33_Accessibility_Dredging_NoTide.ipynb b/notebooks/33_Accessibility_Dredging_NoTide.ipynb index 3e0419f9..47b284c5 100644 --- a/notebooks/33_Accessibility_Dredging_NoTide.ipynb +++ b/notebooks/33_Accessibility_Dredging_NoTide.ipynb @@ -1,44 +1,32 @@ { "cells": [ { + "attachments": { + "image.png": { + "image/png": "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" + } + }, "cell_type": "markdown", "id": "3b8fbfc7", "metadata": {}, "source": [ "\n", - "### Maintenance dredging due to keeping the port accessible\n", - "\n", - "![Alt text](image-1.png)\n", + "### Maintenance dredging for accessibility purpose\n", "\n", - "* This notebook aims to formulate the port accessibility in openclsim simulation when addressing the interaction between one dredging vessel and one seagoing vessel.\n", + "This notebook aims to run a single run of dredging for a Trailing Suction Hopper Dredger when dredging is needed to keep the water depth in a desired value. For this purpose, the following picture shows the concept of accessibility.\n", "\n", - "* The concept of accessibility is defined based on the picture above. When the available water depth is higher than the required water depth for the seagoing vessel, the vessel can sail through the port. Otherwise, the dredging vessel should start its job and keep the port accessible by dredging a certain amount of sediment.\n", + "![image.png](attachment:image.png)\n", "\n", - "The following variables are used:\n", + "* When the actual water level is higher than the dredging criteria level due to sedimentation, dredging should be triggered and continued until the actual bed level reaches the dredging criteria level.\n", + "* Dredging criteria level depends on errors in surveys and uncertainties in dredging caused by different rates of sedimentation.\n", + "* The real-time data from the Port of Rotterdam are used to calculate the actual bed level.\n", "\n", + "The following variables are used to formulate the problem.\n", "```\n", "AWL: Actual (as in at this moment) Water Level (meters)\n", - "LAT: Lowest Astronomical Tide (meters)\n", - "MBL: Maintained Bed Level (meters)\n", - "T: Draught (meters)\n", - "```\n", - "Then the criteria for accessibility can be defined as follows.\n", - "\n", - "* required water depth = ```T``` + safety margin for under keel clearance\n", - "\n", - "* available water depth = ```AWL - MBL```\n", - "\n", - "Considerations\n", - "\n", - "* A dredging criteria level is defined to determine a level that when reaches the ```MBL```, the dredging operation is triggered. Dredging criteria level is considered as a safety margin to guarantee the nautical depth. When this safety margin is lower than the ```MBL```, no dredging is needed and the location is accessible. Otherwise, dredging is triggered.\n", - "\n", - "* Dredging criteria level depends on errors in surveys and uncertainties in dredging caused by different rates of sedimentation. \n", - "\n", - "* Dredging criteria level = ```MBL``` - errors in surveys - uncertainties in dredging (dredging tolerance)\n", - "\n", - "* To dredge navigation channels, ```LAT``` can be ignored because navigation channels are designed based on ```LAT``` and no vessel has tidal windows. When sailing through channels, vessels sail during the neap tide and not tidal restriction is applied.\n", - "\n", - "* For berth location, ```LAT``` is considered as one of the determining factors when the minimum water level is a bit lower than ```LAT```. In this case, vessels need to be at the port during the ebb tide. Dredging criteria level are also taken into account to determine how frequently the berth should be dredged." + "DCL: Dredge Criteria Level (DCL)\n", + "SR: Sedimentation Rate\n", + "```\n" ] }, { @@ -51,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 1, "id": "f22b1f5f", "metadata": {}, "outputs": [], @@ -91,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 2, "id": "0f3edd62", "metadata": {}, "outputs": [], @@ -111,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 3, "id": "20b9605b", "metadata": {}, "outputs": [], @@ -179,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 4, "id": "62c2dca3", "metadata": {}, "outputs": [], @@ -238,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 5, "id": "7bfc8b04", "metadata": {}, "outputs": [], @@ -284,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 6, "id": "4d0d0350", "metadata": {}, "outputs": [], @@ -295,7 +283,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 7, "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", "metadata": {}, "outputs": [], @@ -313,7 +301,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 8, "id": "4b621a99", "metadata": {}, "outputs": [], @@ -392,7 +380,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 9, "id": "d272ff48", "metadata": {}, "outputs": [], @@ -457,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 10, "id": "a22e6a3f", "metadata": {}, "outputs": [], @@ -471,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 11, "id": "67e9ea06", "metadata": {}, "outputs": [ @@ -564,7 +552,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 12, "id": "653367fa", "metadata": {}, "outputs": [ @@ -600,7 +588,7 @@ " \n", " 0\n", " 1970-01-01 00:00:00.000000\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -608,7 +596,7 @@ " \n", " 1\n", " 1970-01-04 12:00:00.000000\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -616,7 +604,7 @@ " \n", " 2\n", " 1970-01-04 12:00:00.000000\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -624,7 +612,7 @@ " \n", " 3\n", " 1970-01-04 12:32:00.113018\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -632,7 +620,7 @@ " \n", " 4\n", " 1970-01-04 13:10:20.207200\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -640,7 +628,7 @@ " \n", " 5\n", " 1970-01-08 01:10:20.207200\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -648,7 +636,7 @@ " \n", " 6\n", " 1970-01-08 01:10:20.207200\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -656,7 +644,7 @@ " \n", " 7\n", " 1970-01-08 01:42:20.320219\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -664,7 +652,7 @@ " \n", " 8\n", " 1970-01-08 02:20:40.414401\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -672,7 +660,7 @@ " \n", " 9\n", " 1970-01-11 14:20:40.414401\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -680,7 +668,7 @@ " \n", " 10\n", " 1970-01-11 14:20:40.414401\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -688,7 +676,7 @@ " \n", " 11\n", " 1970-01-11 14:52:40.527419\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -696,7 +684,7 @@ " \n", " 12\n", " 1970-01-11 15:31:00.621601\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -704,7 +692,7 @@ " \n", " 13\n", " 1970-01-15 03:31:00.621601\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -712,7 +700,7 @@ " \n", " 14\n", " 1970-01-15 03:31:00.621601\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -720,7 +708,7 @@ " \n", " 15\n", " 1970-01-15 04:03:00.734620\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -728,7 +716,7 @@ " \n", " 16\n", " 1970-01-15 04:41:20.828802\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -736,7 +724,7 @@ " \n", " 17\n", " 1970-01-18 16:41:20.828802\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -744,7 +732,7 @@ " \n", " 18\n", " 1970-01-18 16:41:20.828802\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -752,7 +740,7 @@ " \n", " 19\n", " 1970-01-18 17:13:20.941820\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -760,7 +748,7 @@ " \n", " 20\n", " 1970-01-18 17:51:41.036002\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -768,7 +756,7 @@ " \n", " 21\n", " 1970-01-22 05:51:41.036002\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -776,7 +764,7 @@ " \n", " 22\n", " 1970-01-22 05:51:41.036002\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -784,7 +772,7 @@ " \n", " 23\n", " 1970-01-22 06:23:41.149021\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -792,7 +780,7 @@ " \n", " 24\n", " 1970-01-22 07:02:01.243203\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -800,7 +788,7 @@ " \n", " 25\n", " 1970-01-25 19:02:01.243203\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -808,7 +796,7 @@ " \n", " 26\n", " 1970-01-25 19:02:01.243203\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -816,7 +804,7 @@ " \n", " 27\n", " 1970-01-25 19:34:01.356221\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -824,7 +812,7 @@ " \n", " 28\n", " 1970-01-25 20:12:21.450403\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -832,7 +820,7 @@ " \n", " 29\n", " 1970-01-29 08:12:21.450403\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -840,7 +828,7 @@ " \n", " 30\n", " 1970-01-29 08:12:21.450403\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -848,7 +836,7 @@ " \n", " 31\n", " 1970-01-29 08:44:21.563422\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -856,7 +844,7 @@ " \n", " 32\n", " 1970-01-29 09:22:41.657604\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_START\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -864,7 +852,7 @@ " \n", " 33\n", " 1970-02-01 21:22:41.657604\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " WAIT_STOP\n", " {}\n", " {'type': 'plugin', 'ref': 'dredging'}\n", @@ -872,7 +860,7 @@ " \n", " 34\n", " 1970-02-01 21:22:41.657604\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " START\n", " {}\n", " {}\n", @@ -880,7 +868,7 @@ " \n", " 35\n", " 1970-02-01 21:54:41.770622\n", - " 87e3903b-77f3-4ed6-81bb-5cac879c22ff\n", + " a49ba0c7-5cf3-4643-974a-cfe2b3c41110\n", " STOP\n", " {}\n", " {}\n", @@ -891,42 +879,42 @@ ], "text/plain": [ " Timestamp ActivityID \\\n", - "0 1970-01-01 00:00:00.000000 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "1 1970-01-04 12:00:00.000000 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "2 1970-01-04 12:00:00.000000 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "3 1970-01-04 12:32:00.113018 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "4 1970-01-04 13:10:20.207200 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "5 1970-01-08 01:10:20.207200 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "6 1970-01-08 01:10:20.207200 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "7 1970-01-08 01:42:20.320219 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "8 1970-01-08 02:20:40.414401 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "9 1970-01-11 14:20:40.414401 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "10 1970-01-11 14:20:40.414401 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "11 1970-01-11 14:52:40.527419 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "12 1970-01-11 15:31:00.621601 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "13 1970-01-15 03:31:00.621601 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "14 1970-01-15 03:31:00.621601 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "15 1970-01-15 04:03:00.734620 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "16 1970-01-15 04:41:20.828802 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "17 1970-01-18 16:41:20.828802 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "18 1970-01-18 16:41:20.828802 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "19 1970-01-18 17:13:20.941820 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "20 1970-01-18 17:51:41.036002 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "21 1970-01-22 05:51:41.036002 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "22 1970-01-22 05:51:41.036002 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "23 1970-01-22 06:23:41.149021 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "24 1970-01-22 07:02:01.243203 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "25 1970-01-25 19:02:01.243203 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "26 1970-01-25 19:02:01.243203 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "27 1970-01-25 19:34:01.356221 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "28 1970-01-25 20:12:21.450403 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "29 1970-01-29 08:12:21.450403 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "30 1970-01-29 08:12:21.450403 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "31 1970-01-29 08:44:21.563422 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "32 1970-01-29 09:22:41.657604 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "33 1970-02-01 21:22:41.657604 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "34 1970-02-01 21:22:41.657604 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", - "35 1970-02-01 21:54:41.770622 87e3903b-77f3-4ed6-81bb-5cac879c22ff \n", + "0 1970-01-01 00:00:00.000000 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "1 1970-01-04 12:00:00.000000 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "2 1970-01-04 12:00:00.000000 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "3 1970-01-04 12:32:00.113018 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "4 1970-01-04 13:10:20.207200 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "5 1970-01-08 01:10:20.207200 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "6 1970-01-08 01:10:20.207200 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "7 1970-01-08 01:42:20.320219 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "8 1970-01-08 02:20:40.414401 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "9 1970-01-11 14:20:40.414401 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "10 1970-01-11 14:20:40.414401 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "11 1970-01-11 14:52:40.527419 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "12 1970-01-11 15:31:00.621601 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "13 1970-01-15 03:31:00.621601 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "14 1970-01-15 03:31:00.621601 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "15 1970-01-15 04:03:00.734620 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "16 1970-01-15 04:41:20.828802 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "17 1970-01-18 16:41:20.828802 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "18 1970-01-18 16:41:20.828802 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "19 1970-01-18 17:13:20.941820 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "20 1970-01-18 17:51:41.036002 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "21 1970-01-22 05:51:41.036002 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "22 1970-01-22 05:51:41.036002 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "23 1970-01-22 06:23:41.149021 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "24 1970-01-22 07:02:01.243203 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "25 1970-01-25 19:02:01.243203 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "26 1970-01-25 19:02:01.243203 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "27 1970-01-25 19:34:01.356221 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "28 1970-01-25 20:12:21.450403 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "29 1970-01-29 08:12:21.450403 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "30 1970-01-29 08:12:21.450403 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "31 1970-01-29 08:44:21.563422 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "32 1970-01-29 09:22:41.657604 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "33 1970-02-01 21:22:41.657604 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "34 1970-02-01 21:22:41.657604 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", + "35 1970-02-01 21:54:41.770622 a49ba0c7-5cf3-4643-974a-cfe2b3c41110 \n", "\n", " ActivityState ObjectState ActivityLabel \n", "0 WAIT_START {} {'type': 'plugin', 'ref': 'dredging'} \n", @@ -967,7 +955,7 @@ "35 STOP {} {} " ] }, - "execution_count": 41, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -996,7 +984,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 13, "id": "e96e09e8", "metadata": {}, "outputs": [ @@ -1163,7 +1151,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 14, "id": "f920e9e2", "metadata": {}, "outputs": [ @@ -1278,9 +1266,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "myenv", "language": "python", - "name": "python3" + "name": "myenv" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/34_fleet_optimization.ipynb b/notebooks/34_fleet_optimization.ipynb new file mode 100644 index 00000000..cfc1c575 --- /dev/null +++ b/notebooks/34_fleet_optimization.ipynb @@ -0,0 +1,12239 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "384a3d39", + "metadata": {}, + "source": [ + "# Fleet optimization\n", + "\n", + "This notebook shows how to implement a basic feeder concept for one cutter suction dredger working with multiple barges. We run a large number of possible barge configurations and rank the fleets considering three types of KPIs: the shortest, cheapest and most energy efficient scenario. The best simulation is explored, and exported for further analysis with BI tools. This notebook is the use case in the paper: de Boet et al,. (2023). \"Simulating for \n", + "sustainability \n", + "alternati e\n", + "operat ng\n", + "strategies for\n", + "energy effici.eTerra et Aqua (170). url: ncy\" https://www.iadc-dredging.com/wp-content/uploads/2023/06/Terra-et-Aqua_170-Summer-2023-TECHNICAL-double-pages.pdf" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b6580ad4", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import simpy\n", + "import shapely.geometry\n", + "import pandas as pd\n", + "from numpy import random\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "from openclsim.plot import get_step_chart, get_gantt_chart\n", + "\n", + "from openclsim.io import get_activity_resources, get_activity_log, get_activities, get_concepts\n", + "from openclsim.io import get_tree_as_list, get_ranges_dataframe" + ] + }, + { + "cell_type": "markdown", + "id": "a3905fca-2f3a-4334-a22e-5853bb0b1935", + "metadata": {}, + "source": [ + "# SDefine or import a vessel database" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "39db1cff-9e64-40f6-bf99-8943301fbf10", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rates [€/day]sailing empty [kW]loading [kW]sailing full [kW]unloading [kW]WAIT [kW]vessel_type
vessel_name
Carrier A6000100010002500250020barge
Carrier B6000100010002500250020barge
Carrier C6000100010002500250020barge
Barge I5000100010002500250020barge
Barge II5000100010002500250020barge
Barge III5000100010002500250020barge
Extra 14000100010002500250020barge
Extra 24000100010002500250020barge
Extra 34000100010002500250020barge
Cutter T2500010001500010001000500CSD
\n", + "
" + ], + "text/plain": [ + " rates [€/day] sailing empty [kW] loading [kW] \\\n", + "vessel_name \n", + "Carrier A 6000 1000 1000 \n", + "Carrier B 6000 1000 1000 \n", + "Carrier C 6000 1000 1000 \n", + "Barge I 5000 1000 1000 \n", + "Barge II 5000 1000 1000 \n", + "Barge III 5000 1000 1000 \n", + "Extra 1 4000 1000 1000 \n", + "Extra 2 4000 1000 1000 \n", + "Extra 3 4000 1000 1000 \n", + "Cutter T 25000 1000 15000 \n", + "\n", + " sailing full [kW] unloading [kW] WAIT [kW] vessel_type \n", + "vessel_name \n", + "Carrier A 2500 2500 20 barge \n", + "Carrier B 2500 2500 20 barge \n", + "Carrier C 2500 2500 20 barge \n", + "Barge I 2500 2500 20 barge \n", + "Barge II 2500 2500 20 barge \n", + "Barge III 2500 2500 20 barge \n", + "Extra 1 2500 2500 20 barge \n", + "Extra 2 2500 2500 20 barge \n", + "Extra 3 2500 2500 20 barge \n", + "Cutter T 1000 1000 500 CSD " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "barge_empty = 1000 # kW\n", + "barge_full = 2500 # kW\n", + "barge_loading = 1000 # kW\n", + "barge_unloading = 2500 # kW\n", + "barge_WAIT = 20 # kW\n", + "\n", + "# does not specify enery use or rates per operating mode: mover, processor, origin of destination: one overall value\n", + "# proper databases should have a uiuid as key, and not the vessel_name\n", + "vessel_specs = pd.DataFrame.from_dict(\n", + " {'rates [€/day]':{'Carrier A':6000,'Carrier B':6000,'Carrier C':6000,\n", + " 'Barge I':5000,'Barge II':5000,'Barge III':5000,\n", + " 'Extra 1':4000, 'Extra 2':4000, 'Extra 3':4000,\n", + " 'Cutter T':25000}, # EUR/day\n", + " 'sailing empty [kW]':{'Carrier A':barge_empty,'Carrier B':barge_empty,'Carrier C':barge_empty,\n", + " 'Barge I':barge_empty,'Barge II':barge_empty,'Barge III':barge_empty,\n", + " 'Extra 1':barge_empty, 'Extra 2':barge_empty, 'Extra 3':barge_empty,'Cutter T':1000},\n", + " 'loading [kW]':{'Carrier A':barge_loading,'Carrier B':barge_loading,'Carrier C':barge_loading,\n", + " 'Barge I':barge_loading,'Barge II':barge_loading,'Barge III':barge_loading,\n", + " 'Extra 1':barge_loading, 'Extra 2':barge_loading, 'Extra 3':barge_loading,\n", + " 'Cutter T':15000},\n", + " 'sailing full [kW]':{'Carrier A':barge_full,'Carrier B':barge_full,'Carrier C':barge_full,\n", + " 'Barge I':barge_full,'Barge II':barge_full,'Barge III':barge_full,\n", + " 'Extra 1':barge_full, 'Extra 2':barge_full, 'Extra 3':barge_full,\n", + " 'Cutter T':1000},\n", + " 'unloading [kW]':{'Carrier A':barge_unloading,'Carrier B':barge_unloading,'Carrier C':barge_unloading,\n", + " 'Barge I':barge_unloading,'Barge II':barge_unloading,'Barge III':barge_unloading,\n", + " 'Extra 1':barge_unloading, 'Extra 2':barge_unloading, 'Extra 3':barge_unloading,\n", + " 'Cutter T':1000}, # standby power\n", + " 'WAIT [kW]':{'Carrier A':barge_WAIT,'Carrier B':barge_WAIT,'Carrier C':barge_WAIT,\n", + " 'Barge I':barge_WAIT,'Barge II':barge_WAIT,'Barge III':barge_WAIT,\n", + " 'Extra 1':barge_WAIT, 'Extra 2':barge_WAIT, 'Extra 3':barge_WAIT,\n", + " 'Cutter T':500}, # hotel power\n", + " 'vessel_type':{'Carrier A':'barge','Carrier B':'barge','Carrier C':'barge',\n", + " 'Barge I':'barge','Barge II':'barge','Barge III':'barge',\n", + " 'Extra 1':'barge', 'Extra 2':'barge', 'Extra 3':'barge',\n", + " 'Cutter T':'CSD'}, # hotel power\n", + "})\n", + "\n", + "vessel_specs.index.name = 'vessel_name'\n", + "# For large vessel databases, one would import an external source.\n", + "# Here we save to csv and read it again as example. \n", + "vessel_specs.to_csv('vessel_specs.csv', index=True)\n", + "vessel_specs = pd.read_csv('vessel_specs.csv', index_col='vessel_name')\n", + "vessel_specs # us: vessel_specs.loc[cutter_name][property]" + ] + }, + { + "cell_type": "markdown", + "id": "ad0c2928", + "metadata": {}, + "source": [ + "## Define the project, incl. a range of barge scenarios" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5d93d662", + "metadata": {}, + "outputs": [], + "source": [ + "cutter_name = 'Cutter T'\n", + "barge_names = ['Carrier A','Carrier B','Carrier C',\n", + " 'Barge I','Barge II','Barge III',\n", + " 'Extra 1', 'Extra 2', 'Extra 3']\n", + "# verify that our fleet selection exists in the vessel database \n", + "assert all([x in vessel_specs.index for x in barge_names])\n", + "assert cutter_name in vessel_specs.index\n", + "\n", + "# In this example the model Activity.name will be predefined structure\n", + "# to enable post-processing in BI: : \n", + "# where activity_type consitutes a governed list that can be used for\n", + "# example to assign energy consumption. Here is ABS=ActivtryBreakdopwnStructure\n", + "\n", + "ABS = { 'SE':'sailing empty',\n", + " 'LO':'loading',\n", + " 'SF':'sailing full',\n", + " 'UL':'unloading',\n", + " 'WA':'while_sequential_activity_subcycle',\n", + " 'SA':'sequential_activity_subcycle'}\n", + "\n", + "# vessel_amount and vessel_durations are random within a range,\n", + "# to mimic respectively material density variations\n", + "# and metocean workability conditions and traffic density.\n", + "\n", + "amount_range = [4,6]\n", + "duration_range = [2000,3000]\n", + "\n", + "from_site_name, from_site_location = 'Trench', shapely.geometry.Point(4.18055556, 52.18664444)\n", + "to_site_name, to_site_location = 'Reclamation', shapely.geometry.Point(4.25222222, 52.11428333)\n", + "\n", + "nbarges = len(barge_names)\n", + "assert len(set(barge_names))==len(barge_names), 'barge_names need to be unique'\n", + "total_amount = 100\n", + "simulation_start = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "102a1c18", + "metadata": {}, + "outputs": [], + "source": [ + "Site = type(\n", + " \"Site\",\n", + " ( # the order may matter: if you get a MRO error: add the specific first, and the generic (core.Log) last\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " ( # the order may matter: if you get a MRO error: add the specific first, and the generic (core.Log) last\n", + " core.Identifiable,\n", + " core.ContainerDependentMovable,\n", + " core.Processor,\n", + " core.HasResource,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "cef14598", + "metadata": {}, + "outputs": [], + "source": [ + "def run(barge_list, total_amount, simulation_start=0):\n", + " my_env = simpy.Environment(initial_time=simulation_start)\n", + " registry = {}\n", + " \n", + " sites = {}\n", + "\n", + " data_from_site = {\"env\": my_env,\n", + " \"name\": from_site_name,\n", + " \"geometry\": from_site_location,\n", + " \"capacity\": total_amount,\n", + " \"level\": total_amount,\n", + " \"nr_resources\":1\n", + " }\n", + " from_site = Site(**data_from_site)\n", + " sites[from_site_name] = from_site\n", + "\n", + "\n", + " location_to_site = shapely.geometry.Point(4.25222222, 52.11428333)\n", + " data_to_site = {\"env\": my_env,\n", + " \"name\": to_site_name,\n", + " \"geometry\": to_site_location,\n", + " \"capacity\": total_amount,\n", + " \"level\": 0,\n", + " \"nr_resources\":4\n", + " }\n", + " to_site = Site(**data_to_site)\n", + " sites[to_site_name] = to_site\n", + "\n", + " vessels = {}\n", + "\n", + " for i in range(len(barge_list)):\n", + " vessel_name = barge_list[i]\n", + " vessels[vessel_name] = TransportProcessingResource(\n", + " env=my_env,\n", + " name=vessel_name,\n", + " geometry=from_site_location, \n", + " capacity=10,\n", + " compute_v=lambda x: 10\n", + " )\n", + " cutter = TransportProcessingResource(\n", + " env=my_env,\n", + " name=cutter_name,\n", + " geometry=from_site_location, \n", + " capacity=10,\n", + " compute_v=lambda x: 10\n", + " )\n", + " vessels[cutter_name] = cutter\n", + " \n", + " activities = {}\n", + " for i in range(len(barge_list)):\n", + " vessel_name = barge_list[i]\n", + " amount = random.randint(amount_range[0], amount_range[1]) # handle loading\n", + " duration=random.randint(duration_range[0], duration_range[1]) # sailing and unloading\n", + "\n", + " requested_resources={}\n", + " activities[f\"activity{i}\"] = model.WhileActivity(\n", + " env=my_env,\n", + " name=ABS['WA']+':'+f\"while_sequential_activity_subcycle {vessel_name}\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=ABS['SA']+':'+f\"sequential_activity_subcycle {vessel_name}\",\n", + " registry=registry,\n", + " sub_processes=[\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=ABS['SE']+': sailing empty '+vessels[vessel_name].name,\n", + " registry=registry,\n", + " mover=vessels[vessel_name],\n", + " destination=from_site,\n", + " duration=duration,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=ABS['LO']+': loading '+vessels[vessel_name].name,\n", + " registry=registry,\n", + " processor=cutter,\n", + " origin=from_site,\n", + " destination=vessels[vessel_name],\n", + " amount=amount,\n", + " duration=500*amount,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=ABS['SF']+': sailing full '+vessels[vessel_name].name,\n", + " registry=registry,\n", + " mover=vessels[vessel_name],\n", + " destination=to_site,\n", + " duration=duration,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=ABS['UL']+': unloading '+vessels[vessel_name].name,\n", + " registry=registry,\n", + " processor=vessels[vessel_name],\n", + " origin=vessels[vessel_name],\n", + " destination=to_site,\n", + " amount=amount,\n", + " duration=duration,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " ],\n", + " )],\n", + " condition_event=[\n", + " {\n", + " \"type\": \"container\", \n", + " \"concept\": to_site, \n", + " \"state\": \"full\",\n", + " \"id_\":\"default_reservations\"\n", + " }\n", + " ],\n", + " )\n", + "\n", + " model.register_processes(list(activities.values()))\n", + " my_env.run()\n", + " \n", + " return {\n", + " \"vessels\": vessels,\n", + " \"activities\":activities,\n", + " \"sites\":sites\n", + " }\n" + ] + }, + { + "cell_type": "markdown", + "id": "1a939e21", + "metadata": {}, + "source": [ + "## Define a project specific extractor to get KPIs from simulation results" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4682b3bd", + "metadata": {}, + "outputs": [], + "source": [ + "def simulation_analysis(results, vessel_specs, cutter_name, total_amount):\n", + " \"\"\"Extract specific information from simulation results.\n", + " \n", + " Parameters\n", + " ----------\n", + " results\n", + " dataframes with OpenCLSim vessel, activities log \n", + " vessel_specs\n", + " dataframe with vessel properties (rates, energy use)\n", + " each row is a vessel (index), each column is a property\n", + " cutter_name\n", + " name of the one cutter_vessel among the vessels. simulation_analysis asumes that \n", + " 1 cutter services many barges, 1 at a time. The cutter processes the same amlunt as the sum of all barges:\n", + " total_amount\n", + " amount processed by cutter, and by the fleet of barges\n", + " \n", + " Results\n", + " ----------\n", + " df\n", + " Dataframe of integrated vessels kpis for scenario: e.g. fuel, occupancy, cost\n", + " kpi\n", + " Dataframe with a row of overall simulation kpis\n", + " \n", + " Assumes\n", + " * all vessels arrive JIT when they need to start\n", + " * al vessels leave immediately when they are done (so different demob times)\n", + " This is an overestimation of actual occupancy, a mob/demob, initial waiting, \n", + " and final waiting are considered gratis.\n", + " \n", + " \"\"\"\n", + " \n", + " vessels = results['vessels']\n", + " activities = results['activities']\n", + " sites = results['sites']\n", + " \n", + "# for each fleet member \n", + " \n", + " data = []\n", + " \n", + " activity_resources = get_activity_resources(activities, 'resources.csv')\n", + " activity_resources['ActivityType'] = [x['ActivityName'].split(':')[0] for _,x in activity_resources.iterrows()] \n", + " \n", + " for i, vessel_name in enumerate(vessels):\n", + " vessel = vessels[vessel_name]\n", + "\n", + " log = get_ranges_dataframe(vessel)\n", + " \n", + " duration_theory = log.TimestampDt.sum()\n", + " duration_actual = (log.TimestampStop.max() - log.TimestampStart.min()).total_seconds()\n", + " nr_trips = len(log.groupby('trip'))\n", + "\n", + " mask = activity_resources['ConceptName']==vessel.name\n", + " # ConceptMode is not dependent on mover or processor (not origin): vessel_specs is combined mode\n", + " log2 = log.merge(activity_resources[mask].groupby('ConceptMode').max(), left_on='Activity', right_on='ActivityID', how='left')\n", + " log2 = log2[['TimestampDt','ActivityType']]\n", + " log3 = log2.groupby('ActivityType').sum()\n", + " MWha = [vessel_specs.loc[vessel.name][ActivityType + ' [kW]']*x['TimestampDt']/3600/1e3 for ActivityType, x in log3.iterrows()] # working\n", + " MWhw = (duration_actual - duration_theory)*vessel_specs.loc[vessel.name]['WAIT [kW]']/3600/1e3 # waiting\n", + " \n", + " if vessel.name==cutter_name:\n", + " amount = total_amount\n", + " else:\n", + " amount = sum(log.groupby('trip')['ContainerLevelStop'].max())\n", + " \n", + " data.append({\n", + " 'name':vessel.name, \n", + " '# trips':nr_trips, \n", + " 'start': log.TimestampStart.min(),\n", + " 'finish': log.TimestampStop.max(),\n", + " 'amount sum': amount,\n", + " 'MWh':sum(MWha) + MWhw,\n", + " 'MWh waiting':MWhw,\n", + " 'duration actual': duration_actual,\n", + " 'duration theory':duration_theory,\n", + " 'cost actual':round(duration_actual*vessel_specs['rates [€/day]'][vessel_name]/3600/24,0),\n", + " 'production actual':(nr_trips * amount) / (duration_actual),\n", + " 'production theory':(nr_trips * amount / (duration_theory)),\n", + " })\n", + "\n", + " df = pd.DataFrame(data).sort_values(by=['production actual'],ascending=False)\n", + " df['occupancy [%]'] = [round(x,1) for x in 100*df['production actual']/df['production theory']]\n", + " df.set_index('name', inplace=True)\n", + "\n", + " if df['amount sum'].sum()-total_amount!=total_amount:\n", + " print('ERROR: material imbalance')\n", + " \n", + "# overall KPI for simulation\n", + "\n", + " kpi = pd.DataFrame.from_dict({\n", + " '# barges':[len(vessels)-1], # exclude cutter\n", + " 'cutter occupancy':df.loc[cutter_name]['occupancy [%]'],\n", + " 'duration':(df['finish'].max() - df['start'].min()).total_seconds()/3600/24,\n", + " 'Σ cost':round(df['cost actual'].sum()),\n", + " 'Σ MWh':round(df['MWh'].sum()),\n", + " 'Σ MWh waiting':MWhw})\n", + " \n", + " return df, kpi" + ] + }, + { + "cell_type": "markdown", + "id": "e8f3413a-c11b-4ff6-9114-e9b5a35bc577", + "metadata": {}, + "source": [ + "# Tools to generate scenarios" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "03960acd", + "metadata": {}, + "outputs": [], + "source": [ + "def generate_combinations(my_list, n):\n", + " \"\"\"Generate all posible ways to extract n indices from a list\"\"\"\n", + " m = len(my_list)\n", + " if n == 0:\n", + " return [[]]\n", + " if n > m:\n", + " return []\n", + " if m == n:\n", + " return [list(range(m))]\n", + " combinations = []\n", + " for i in range(m, n - 1, -1):\n", + " for c in generate_combinations(my_list[:i-1], n - 1):\n", + " combinations.append(c + [i-1])\n", + " return combinations\n", + "\n", + "def fleet_selector(fleet_list, n, debug=False):\n", + " \"\"\"Generate all fleets of length n from a fleet list\n", + " This is an implementation of the binomial coefficient.\"\"\"\n", + " import math\n", + " vs = []\n", + " m = len(fleet_list)\n", + " import math\n", + " if isinstance(n,list):\n", + " nmin, nmax = n [0], n[1]\n", + " else:\n", + " nmin, nmax = 1, n\n", + " if nmax == 0:\n", + " return [[]]\n", + " for i in range(nmin,nmax+1):\n", + " cs = generate_combinations(fleet_list,i)\n", + " if debug:\n", + " print(f'fleet length {i} has {len(cs)} combinations')\n", + " assert len(cs)==(math.factorial(m)/math.factorial(m-i)/math.factorial(i))\n", + " for c in cs:\n", + " vs.append([fleet_list[i] for i in c])\n", + " return vs" + ] + }, + { + "cell_type": "markdown", + "id": "76c14573", + "metadata": {}, + "source": [ + "## Simulate multiple barge scenarios, compare and select optimal one" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "eeb88b8d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "done \n", + "CPU times: total: 1min 45s\n", + "Wall time: 1min 45s\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWhΣ MWh waiting
0120.12.9823508408439427.69
1123.22.5708917256436522.95
2120.42.9328708269939127.12
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh Σ MWh waiting\n", + "0 1 20.1 2.982350 84084 394 27.69\n", + "1 1 23.2 2.570891 72564 365 22.95\n", + "2 1 20.4 2.932870 82699 391 27.12" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%time\n", + "results, dfs, kpis = [], [], []\n", + "\n", + "fleets = fleet_selector(barge_names,7) # 7 out of 9, optimum is 4..6\n", + "\n", + "for _, barge_fleet in enumerate(fleets):\n", + " print(_,'/',len(fleets),end='\\r')\n", + " results.append(run(barge_fleet,total_amount))\n", + " \n", + " df, kpi = simulation_analysis(results[-1], vessel_specs, cutter_name, total_amount)\n", + " \n", + " dfs.append(df)\n", + " kpis.append(kpi)\n", + "\n", + "print('done ')\n", + " \n", + "scenarios = pd.concat(kpis).reset_index()\n", + "scenarios = scenarios.drop(columns=['index'])\n", + "scenarios.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "18484020", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cutter occupancydurationΣ costΣ MWhΣ MWh waiting
# barges
118.92.3269686885134720.140000
240.81.126551371162175.627500
359.50.814398302771771.763333
478.30.658275258041610.039444
595.20.652037281481540.000000
6100.00.649641308701480.000000
7100.00.652176339751480.000000
\n", + "
" + ], + "text/plain": [ + " cutter occupancy duration Σ cost Σ MWh Σ MWh waiting\n", + "# barges \n", + "1 18.9 2.326968 68851 347 20.140000\n", + "2 40.8 1.126551 37116 217 5.627500\n", + "3 59.5 0.814398 30277 177 1.763333\n", + "4 78.3 0.658275 25804 161 0.039444\n", + "5 95.2 0.652037 28148 154 0.000000\n", + "6 100.0 0.649641 30870 148 0.000000\n", + "7 100.0 0.652176 33975 148 0.000000" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# show best result per choice for # barges\n", + "scenarios.groupby('# barges').min()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4b9dc9b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ MWhΣ MWh waiting
Σ cost
25804498.70.6582751720.091111
27173496.00.6738081660.286667
27453490.30.7237271900.748611
27551493.20.7157871710.525556
27627494.40.7019441730.408333
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ MWh Σ MWh waiting\n", + "Σ cost \n", + "25804 4 98.7 0.658275 172 0.091111\n", + "27173 4 96.0 0.673808 166 0.286667\n", + "27453 4 90.3 0.723727 190 0.748611\n", + "27551 4 93.2 0.715787 171 0.525556\n", + "27627 4 94.4 0.701944 173 0.408333" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# best result overall\n", + "scenarios.groupby('Σ cost').min().sort_index().head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0e5aa2a0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancyΣ costΣ MWhΣ MWh waiting
duration
0.6496416100.0311061710.0
0.6503016100.0325301670.0
0.6507186100.0336251660.0
0.6520375100.0296811610.0
0.6521767100.0350661550.0
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy Σ cost Σ MWh Σ MWh waiting\n", + "duration \n", + "0.649641 6 100.0 31106 171 0.0\n", + "0.650301 6 100.0 32530 167 0.0\n", + "0.650718 6 100.0 33625 166 0.0\n", + "0.652037 5 100.0 29681 161 0.0\n", + "0.652176 7 100.0 35066 155 0.0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# best result overall\n", + "scenarios.groupby('duration').min().sort_index().head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "2fe6803a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWh waiting
Σ MWh
1486100.00.653287316280.0
1496100.00.659340322510.0
1516100.00.656030308700.0
1536100.00.659711312060.0
1545100.00.656354289310.0
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh waiting\n", + "Σ MWh \n", + "148 6 100.0 0.653287 31628 0.0\n", + "149 6 100.0 0.659340 32251 0.0\n", + "151 6 100.0 0.656030 30870 0.0\n", + "153 6 100.0 0.659711 31206 0.0\n", + "154 5 100.0 0.656354 28931 0.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# best result overall\n", + "scenarios.groupby('Σ MWh').min().sort_index().head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "52c962d1", + "metadata": {}, + "outputs": [], + "source": [ + "def kpi_plot(fig, axs, Ds, clrs, lbls, mrkr):\n", + "\n", + " lw = 3\n", + " \n", + " for _,D in enumerate(Ds):\n", + " \n", + " clr = clrs[_]\n", + " lbl = lbls[_]\n", + " \n", + " if '# barges' in D.keys():\n", + " axs[0].plot(D.index,D['# barges'],'C7', linewidth=lw,label='# barges', marker=mrkr)\n", + " if '# fleets' in D.keys():\n", + " axs[0].plot(D.index,D['# fleets']/10,'C7'+'--', linewidth=lw,label='# fleets / 10', marker=mrkr)\n", + " axs[1].plot(D.index,D['Σ cost'],clr, linewidth=lw,label=lbl, marker=mrkr)\n", + " axs[2].plot(D.index,D['cutter occupancy'],clr, linewidth=lw,label=lbl, marker=mrkr)\n", + " axs[3].plot(D.index,D['duration'],clr, linewidth=lw,label=lbl, marker=mrkr)\n", + " axs[4].plot(D.index,D['Σ MWh'],clr, linewidth=lw, label=lbl+': activity', marker=mrkr)\n", + " axs[4].plot(D.index,D['Σ MWh']-D['Σ MWh waiting'],clr+'--', label='... - wait', linewidth=lw, marker=mrkr)\n", + "\n", + " i=0\n", + " axs[i].set_ylabel('# barges')\n", + " axs[i].grid();\n", + " axs[i].legend() \n", + " # axs[0].set_ylim(ymin=0)\n", + " i=1\n", + " axs[i].set_ylabel('Σ cost [EUR]')\n", + " axs[i].grid();\n", + " axs[i].yaxis.set_label_position(\"right\")\n", + " axs[i].yaxis.tick_right()\n", + " # axs[0].set_ylim(ymin=0)\n", + " i=2\n", + " axs[i].set_ylabel('cutter occupancy [%]')\n", + " axs[i].grid();\n", + " # axs[i].set_ylim(ymin=0)\n", + " i=3\n", + " axs[i].set_ylabel('duration [days]')\n", + " axs[i].grid();\n", + " axs[i].yaxis.set_label_position(\"right\")\n", + " axs[i].yaxis.tick_right()\n", + " # axi[i].set_ylim(ymin=0)\n", + " i=4\n", + " axs[i].set_ylabel('Σ energy [MWh]')\n", + " axs[i].grid();\n", + " axs[i].legend()\n", + " # axs[i].set_ylim(ymin=0)\n", + "\n", + " axs[-1].set_xlabel('# barges');" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "61495b74", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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REREA4IjoERERERERDQgGECJiIiIiIhoQDCAEhERERER0YBgACUiIiIiIqIBwQA6SL3//vtYtGgR8vPzIQgCXn/9db2bRH20Zs0azJgxAw6HA9nZ2bjhhhvw73//W+9mUR+99NJLKCoqim6UXVJSgrffflvvZlEcrV27FoIg4P7779e7KdQHjz/+OARBiLmMHz9e72ZRH508eRJ33nknMjIyYLPZcMkll2Dv3r16N4v6YOTIkR3+VgVBwLJly/RuGsUJA+gg5fF4MGXKFPzqV7/SuykUJ++99x6WLVuG3bt3Y9u2bZAkCfPnz4fH49G7adQHw4cPx9q1a7Fv3z7s3bsX11xzDb71rW/h4MGDejeN4mDPnj34zW9+g6KiIr2bQnEwadIk1NTURC87d+7Uu0nUB01NTZg1axZMJhPefvttHDp0CM8++yzS0tL0bhr1wZ49e2L+Trdt2wYAuOWWW3RuGcWLUe8GUOfKyspQVlamdzMojrZu3RpzfePGjcjOzsa+fftw5ZVX6tQq6qtFixbFXH/qqafw0ksvYffu3Zg0aZJOraJ4cLvdWLx4MV5++WU8+eSTejeH4sBoNCI3N1fvZlCcPPPMMygoKEBFRUX0tlGjRunYIoqHrKysmOtr167FRRddhDlz5ujUIoo3joAS6aSlpQUAkJ6ernNLKF5CoRC2bNkCj8eDkpISvZtDfbRs2TJcd911mDt3rt5NoTj56quvkJ+fj9GjR2Px4sWoqqrSu0nUB3/7298wffp03HLLLcjOzkZxcTFefvllvZtFcRQMBrFp0ybcddddEARB7+ZQnHAElEgHiqLg/vvvx6xZszB58mS9m0N9dODAAZSUlMDv98Nut+O1117DxIkT9W4W9cGWLVuwf/9+7NmzR++mUJxcfvnl2LhxI8aNG4eamhqsXr0aV1xxBT7//HM4HA69m0e98PXXX+Oll17CihUr8PDDD2PPnj249957YTabUV5ernfzKA5ef/11NDc3Y8mSJXo3heKIAZRIB8uWLcPnn3/O+UcJYty4caisrERLSwv+8pe/oLy8HO+99x5D6BB14sQJ3Hfffdi2bRusVqvezaE4aT+tpaioCJdffjkKCwvxpz/9CXfffbeOLaPeUhQF06dPx9NPPw0AKC4uxueff47169czgCaI3/72tygrK0N+fr7eTaE4Ygku0QC75557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cw9EUURaWhoyMjKwYcMG5OXloaqqCg899FCPzrt8+XKsWbMGY8aMwfjx4/HLX/4STU1NEAQBAOBwOLBy5Uo88MADUBQFs2fPRktLC/71r3/B6XSivLwcjz76KKZNm4ZJkyYhEAjgjTfewIQJE3r9+yIiIhqsGECJiGhI2LFjB2bMmAGr1YoPPvgAw4cP73H4BIDS0lKMHTsWV155JQKBAG6//XY8/vjjAABRFLFlyxbce++9mDx5MsaNG4cXXngBV111VbfnffDBB1FbW4vvfOc7MBgM+P73v48FCxbAYDBEH/PEE08gKysLa9aswddff43U1FRceumlePjhhwEAZrMZq1atwrFjx2Cz2XDFFVdgy5Yt5/X7ISIiGgq4Ci4REVEcKYqCCRMm4NZbb8UTTzyhd3OIiIgGFY6AEhER9cHx48fx7rvvYs6cOQgEAnjxxRdx9OhR3HHHHXo3jYiIaNDhIkRERER9IIoiNm7ciBkzZmDWrFk4cOAAtm/fzjmcREREnWAJLhEREREREQ0IjoASERERERHRgGAAJSIiIiIiogHBAEpEREREREQDggGUiIiIiIiIBgQDKBEREREREQ0IBlAiIiIiIiIaEAygRERERERENCAYQImIiIiIiGhAMIASERERERHRgPj/XB87KohtZnEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot min/avg/max simulation KPI per # barges\n", + "\n", + "fig = plt.figure(figsize=(10,12))\n", + "gs = fig.add_gridspec(5, hspace=0)\n", + "axs = gs.subplots(sharex=True)\n", + "\n", + "nfleet = scenarios.groupby('# barges').count()['duration']\n", + "\n", + "mins = scenarios.groupby('# barges').min()\n", + "mins['# barges'] = mins.index\n", + "mins['# fleets'] = nfleet\n", + "\n", + "avgs = scenarios.groupby('# barges').mean()\n", + "mins['# fleets'] = nfleet\n", + "\n", + "maxs = scenarios.groupby('# barges').max()\n", + "mins['# fleets'] = nfleet\n", + "\n", + "kpi_plot(fig, axs, [mins, avgs, maxs], ['C2','C1','C0'],['min','avg','max'],'o')\n", + "fig.savefig('figure4_24_cutters and barges scenarios', dpi=300, bbox_inches ='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "fedf01a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 27453, + 29630, + 27551, + 31690, + 29549, + 29241, + 28823, + 28864, + 29214, + 30867, + 29514, + 28218, + 31481, + 30605, + 31494, + 29754, + 29520, + 27173, + 32359, + 29852, + 32043, + 30378, + 28991, + 28863, + 30043, + 31279, + 30690, + 31048, + 27723, + 31372, + 28891, + 29085, + 29495, + 32790, + 32285, + 29224, + 31858, + 31473, + 32395, + 33251, + 30395, + 32319, + 30669, + 31377, + 33739, + 29933, + 32309, + 29061, + 31496, + 31769, + 32954, + 32743, + 29937, + 29653, + 31475, + 33149, + 25804, + 28701, + 29412, + 28486, + 32186, + 31323, + 28786, + 31787, + 31558, + 30346, + 30814, + 27627, + 34123, + 32145, + 29268, + 33240, + 28857, + 33835, + 31344, + 28920, + 32793, + 30666, + 29883, + 32242, + 33646, + 31126, + 30048, + 30397, + 29752, + 30064, + 32800, + 29288, + 34139, + 33646, + 29865, + 30630, + 31845, + 28178, + 29214, + 32590, + 32661, + 32411, + 30749, + 32360, + 27942, + 34221, + 27937, + 28497, + 32493, + 32781, + 33516, + 31379, + 33352, + 30589, + 33498, + 33605, + 34796, + 35014, + 29799, + 31585, + 31696, + 32232, + 32081, + 31362, + 31472, + 28423, + 31186, + 34139, + 31452, + 33438 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 190, + 192, + 171, + 199, + 185, + 198, + 199, + 186, + 183, + 188, + 184, + 188, + 188, + 200, + 190, + 179, + 185, + 166, + 196, + 181, + 191, + 182, + 179, + 169, + 196, + 202, + 196, + 184, + 178, + 187, + 179, + 190, + 184, + 206, + 195, + 161, + 200, + 197, + 196, + 198, + 179, + 186, + 181, + 175, + 193, + 174, + 189, + 166, + 186, + 178, + 203, + 185, + 166, + 169, + 194, + 196, + 172, + 164, + 173, + 170, + 193, + 207, + 190, + 192, + 206, + 177, + 192, + 173, + 196, + 179, + 170, + 187, + 170, + 203, + 200, + 183, + 210, + 178, + 177, + 189, + 194, + 187, + 176, + 179, + 171, + 173, + 177, + 163, + 203, + 196, + 165, + 190, + 203, + 161, + 166, + 187, + 195, + 182, + 179, + 190, + 168, + 215, + 181, + 171, + 192, + 182, + 196, + 183, + 189, + 170, + 181, + 193, + 208, + 200, + 163, + 169, + 189, + 187, + 184, + 177, + 175, + 165, + 176, + 185, + 186, + 195 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.7237268518518518, + 0.7796643518518519, + 0.715787037037037, + 0.8144328703703704, + 0.7548032407407407, + 0.743900462962963, + 0.7392476851851852, + 0.7348032407407407, + 0.7220601851851852, + 0.7551967592592592, + 0.7385648148148148, + 0.7250231481481482, + 0.7929398148148148, + 0.7671064814814814, + 0.7739351851851852, + 0.7391319444444444, + 0.7336226851851851, + 0.6738078703703704, + 0.777349537037037, + 0.7243981481481482, + 0.7884027777777778, + 0.7649305555555556, + 0.7429513888888889, + 0.7169212962962962, + 0.744837962962963, + 0.7751388888888888, + 0.784050925925926, + 0.7743287037037038, + 0.7057638888888889, + 0.7643055555555556, + 0.7108101851851852, + 0.7256481481481482, + 0.7381365740740741, + 0.8075810185185185, + 0.7869791666666667, + 0.7255671296296297, + 0.7963773148148148, + 0.766238425925926, + 0.776712962962963, + 0.799363425925926, + 0.7437615740740741, + 0.7727430555555556, + 0.7483796296296297, + 0.7434259259259259, + 0.7999189814814814, + 0.7340393518518519, + 0.7717824074074073, + 0.7006712962962963, + 0.7656018518518519, + 0.7610532407407408, + 0.7853009259259259, + 0.7791666666666667, + 0.7217592592592593, + 0.7052893518518518, + 0.7466666666666667, + 0.7773726851851852, + 0.6582754629629629, + 0.7303240740740741, + 0.7468981481481481, + 0.7109143518518519, + 0.7856018518518518, + 0.8002546296296296, + 0.7214814814814815, + 0.8016319444444444, + 0.7956944444444445, + 0.7695486111111111, + 0.7696064814814815, + 0.7019444444444445, + 0.8371875000000001, + 0.7720254629629629, + 0.7255555555555556, + 0.837824074074074, + 0.717800925925926, + 0.8324768518518518, + 0.7633101851851851, + 0.703599537037037, + 0.7972106481481481, + 0.743263888888889, + 0.725625, + 0.7748611111111111, + 0.7994212962962962, + 0.7636342592592592, + 0.7315625, + 0.7384722222222222, + 0.7240046296296296, + 0.7336921296296296, + 0.765173611111111, + 0.6920254629629629, + 0.8231018518518519, + 0.7813541666666667, + 0.7125347222222222, + 0.7646875, + 0.7776736111111111, + 0.6840509259259259, + 0.708761574074074, + 0.7790625000000001, + 0.8049768518518517, + 0.7871412037037038, + 0.7338657407407408, + 0.7712731481481482, + 0.6792592592592593, + 0.821099537037037, + 0.6784606481481482, + 0.6898148148148149, + 0.7568402777777777, + 0.7783912037037037, + 0.7997916666666667, + 0.7494675925925925, + 0.7924884259259258, + 0.7205208333333334, + 0.7753819444444444, + 0.8106249999999999, + 0.8394444444444445, + 0.8383217592592592, + 0.6966319444444444, + 0.7396412037037038, + 0.7376851851851852, + 0.7512962962962964, + 0.7408101851851852, + 0.7354861111111112, + 0.7185069444444445, + 0.672951388888889, + 0.7295601851851852, + 0.782638888888889, + 0.7125578703703703, + 0.7597916666666666 + ] + } + ], + "hovertemplate": "nr barges=4
# barges=%{marker.size}
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "4", + "marker": { + "color": "#636efa", + "size": [ + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4 + ], + "sizemode": "area", + "sizeref": 0.0175, + "symbol": "circle" + }, + "name": "4", + "showlegend": true, + "type": "splom" + }, + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 28431, + 28148, + 29000, + 28710, + 29098, + 28271, + 28731, + 29288, + 28656, + 30094, + 28931, + 28990, + 29336, + 29606, + 29182, + 29753, + 29537, + 29138, + 29836, + 29537, + 28993, + 29339, + 30091, + 29721, + 29771, + 29830, + 29275, + 29428, + 30009, + 29955, + 30972, + 29600, + 30093, + 29959, + 30704, + 28442, + 29353, + 29623, + 29533, + 29531, + 29417, + 29205, + 30070, + 29990, + 30888, + 29326, + 29178, + 29740, + 29969, + 30151, + 29738, + 30101, + 29563, + 29933, + 30591, + 29711, + 30217, + 29681, + 30570, + 30577, + 31015, + 30511, + 30830, + 30490, + 30967, + 30825, + 30556, + 30395, + 31347, + 30766, + 28700, + 29377, + 29694, + 29481, + 29094, + 29365, + 30492, + 29567, + 29633, + 29900, + 29234, + 29298, + 29744, + 30097, + 30237, + 30301, + 29647, + 29811, + 29916, + 30893, + 29871, + 29916, + 30818, + 30550, + 30501, + 30706, + 31163, + 30399, + 30370, + 31697, + 30507, + 30888, + 30540, + 31326, + 32256, + 29572, + 30286, + 30735, + 30649, + 31180, + 30666, + 31433, + 31091, + 30249, + 31242, + 31064, + 30663, + 30441, + 31136, + 31691, + 31288, + 31946, + 31311, + 31812, + 31485, + 32221 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 185, + 171, + 158, + 160, + 167, + 177, + 179, + 182, + 173, + 188, + 154, + 175, + 171, + 177, + 164, + 191, + 173, + 172, + 170, + 165, + 162, + 161, + 177, + 173, + 159, + 183, + 166, + 179, + 168, + 157, + 200, + 160, + 179, + 163, + 177, + 171, + 159, + 183, + 183, + 167, + 163, + 165, + 174, + 172, + 183, + 180, + 157, + 164, + 174, + 190, + 155, + 183, + 176, + 163, + 163, + 162, + 164, + 161, + 180, + 177, + 177, + 157, + 169, + 177, + 174, + 180, + 159, + 170, + 182, + 160, + 173, + 155, + 162, + 177, + 164, + 165, + 174, + 155, + 157, + 163, + 173, + 179, + 171, + 178, + 173, + 182, + 169, + 168, + 165, + 184, + 165, + 167, + 181, + 159, + 157, + 177, + 180, + 171, + 166, + 175, + 168, + 191, + 173, + 181, + 180, + 158, + 160, + 186, + 169, + 181, + 170, + 181, + 189, + 163, + 161, + 186, + 177, + 165, + 182, + 169, + 170, + 184, + 173, + 166, + 164, + 168 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.6745949074074074, + 0.6599652777777778, + 0.6675115740740741, + 0.6629166666666667, + 0.6737268518518519, + 0.6729976851851852, + 0.6634606481481481, + 0.6792592592592593, + 0.659074074074074, + 0.6849074074074074, + 0.6633796296296296, + 0.6671064814814814, + 0.6652199074074074, + 0.670162037037037, + 0.659224537037037, + 0.6942592592592592, + 0.6712384259259259, + 0.6601736111111111, + 0.6758796296296296, + 0.6681712962962963, + 0.669699074074074, + 0.6642824074074074, + 0.6715046296296295, + 0.656886574074074, + 0.6571875, + 0.6825, + 0.662974537037037, + 0.6726504629629629, + 0.6627893518518518, + 0.6668171296296297, + 0.6959837962962964, + 0.6556712962962963, + 0.6726504629629629, + 0.6592592592592593, + 0.6701041666666666, + 0.655625, + 0.657337962962963, + 0.6763541666666667, + 0.6778124999999999, + 0.6699074074074075, + 0.6647800925925925, + 0.6634375, + 0.666863425925926, + 0.6661921296296297, + 0.6873842592592593, + 0.6693171296296296, + 0.6541087962962963, + 0.6694097222222223, + 0.674699074074074, + 0.6744328703703704, + 0.6560532407407408, + 0.6698263888888888, + 0.6715509259259259, + 0.656261574074074, + 0.6639699074074074, + 0.6564236111111111, + 0.6675925925925926, + 0.6520370370370371, + 0.6621759259259259, + 0.6693055555555555, + 0.6756481481481482, + 0.6571412037037038, + 0.6678587962962963, + 0.6627083333333333, + 0.6624652777777778, + 0.6653009259259259, + 0.6636921296296296, + 0.6778356481481481, + 0.6679513888888889, + 0.6525925925925926, + 0.6667939814814815, + 0.657986111111111, + 0.6702662037037036, + 0.6683564814814815, + 0.656099537037037, + 0.6678125, + 0.7023842592592593, + 0.6545601851851852, + 0.6524884259259259, + 0.6659143518518519, + 0.6663888888888889, + 0.6599537037037037, + 0.6794212962962963, + 0.6770486111111111, + 0.668599537037037, + 0.6706018518518518, + 0.6748842592592593, + 0.6624421296296296, + 0.6620717592592592, + 0.6733796296296296, + 0.6619444444444444, + 0.6587731481481481, + 0.683773148148148, + 0.6638773148148148, + 0.6587731481481481, + 0.6640972222222222, + 0.6820138888888888, + 0.6567824074074075, + 0.6543865740740741, + 0.6834490740740741, + 0.6578125, + 0.6802314814814815, + 0.6725578703703704, + 0.6726273148148149, + 0.6877083333333333, + 0.6707523148148148, + 0.6697222222222222, + 0.6913657407407406, + 0.6781712962962962, + 0.6806134259259259, + 0.6652430555555556, + 0.6872685185185184, + 0.662337962962963, + 0.670150462962963, + 0.6569560185185185, + 0.679074074074074, + 0.6671643518518519, + 0.6633449074074075, + 0.6670717592592593, + 0.6778124999999999, + 0.6637268518518519, + 0.6843750000000001, + 0.6640856481481482, + 0.6619444444444444, + 0.6559143518518519, + 0.6751157407407408 + ] + } + ], + "hovertemplate": "nr barges=5
# barges=%{marker.size}
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "5", + "marker": { + "color": "#EF553B", + "size": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "sizemode": "area", + "sizeref": 0.0175, + "symbol": "circle" + }, + "name": "5", + "showlegend": true, + "type": "splom" + }, + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 31456, + 31997, + 32113, + 30870, + 31628, + 32615, + 31206, + 33014, + 31732, + 32756, + 31106, + 31090, + 32123, + 32968, + 32608, + 31508, + 33159, + 32822, + 31800, + 32883, + 32804, + 32670, + 32392, + 32480, + 32248, + 33219, + 33312, + 32197, + 33517, + 33895, + 32413, + 32945, + 32381, + 33575, + 33225, + 33291, + 32458, + 32668, + 33678, + 32459, + 32399, + 32714, + 33577, + 32618, + 34036, + 32517, + 32471, + 32297, + 33338, + 34543, + 34254, + 33399, + 33698, + 33783, + 34837, + 33611, + 32846, + 32559, + 31993, + 33240, + 33198, + 32590, + 32363, + 32806, + 33665, + 33296, + 32530, + 32251, + 32395, + 33865, + 33141, + 33728, + 33302, + 34309, + 34756, + 34558, + 33625, + 32813, + 33228, + 33807, + 34653, + 33433, + 34054, + 35149 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 173, + 172, + 174, + 151, + 148, + 187, + 153, + 169, + 162, + 176, + 171, + 161, + 176, + 161, + 159, + 174, + 178, + 172, + 167, + 170, + 164, + 157, + 156, + 164, + 154, + 171, + 179, + 148, + 167, + 170, + 158, + 163, + 162, + 164, + 158, + 185, + 156, + 161, + 184, + 175, + 170, + 168, + 180, + 169, + 162, + 168, + 176, + 162, + 162, + 178, + 173, + 169, + 173, + 175, + 177, + 163, + 181, + 164, + 168, + 164, + 164, + 164, + 161, + 159, + 190, + 168, + 167, + 149, + 174, + 171, + 175, + 168, + 155, + 173, + 172, + 166, + 166, + 158, + 175, + 166, + 178, + 163, + 156, + 175 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.6856018518518519, + 0.6701967592592593, + 0.6851504629629629, + 0.6560300925925926, + 0.6663888888888889, + 0.6905787037037037, + 0.6597106481481482, + 0.6923032407407407, + 0.6680555555555556, + 0.6864699074074073, + 0.6496412037037037, + 0.6702777777777778, + 0.6860185185185186, + 0.6836226851851852, + 0.6735185185185185, + 0.6639699074074074, + 0.6932986111111111, + 0.6700925925925926, + 0.6635532407407407, + 0.6786342592592592, + 0.6805787037037038, + 0.685324074074074, + 0.6727777777777778, + 0.6671412037037037, + 0.6612847222222222, + 0.6791319444444445, + 0.6665625000000001, + 0.6618865740740741, + 0.6893171296296297, + 0.6878935185185185, + 0.666261574074074, + 0.674675925925926, + 0.6685416666666667, + 0.6751967592592593, + 0.6644097222222222, + 0.7001504629629629, + 0.6794444444444445, + 0.6663773148148148, + 0.6834027777777778, + 0.6655787037037036, + 0.667048611111111, + 0.6661921296296297, + 0.6880787037037037, + 0.6713541666666667, + 0.6834490740740741, + 0.672349537037037, + 0.6677199074074074, + 0.6618287037037037, + 0.6695138888888889, + 0.6927546296296296, + 0.6893634259259259, + 0.6717592592592593, + 0.6769791666666666, + 0.6675925925925926, + 0.6948958333333333, + 0.6672800925925926, + 0.6851273148148148, + 0.6783333333333333, + 0.6665393518518519, + 0.6814351851851851, + 0.6613888888888889, + 0.6542824074074074, + 0.6634722222222222, + 0.6710763888888889, + 0.6954629629629631, + 0.6543865740740741, + 0.6503009259259259, + 0.6593402777777778, + 0.6686689814814816, + 0.6795833333333333, + 0.6655208333333333, + 0.6822800925925926, + 0.6708217592592592, + 0.6893287037037038, + 0.6878935185185185, + 0.6682523148148148, + 0.6507175925925927, + 0.6597916666666667, + 0.6741666666666667, + 0.686875, + 0.6672800925925926, + 0.6609490740740741, + 0.6686921296296297, + 0.6673842592592593 + ] + } + ], + "hovertemplate": "nr barges=6
# barges=%{marker.size}
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "6", + "marker": { + "color": "#00cc96", + "size": [ + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6 + ], + "sizemode": "area", + "sizeref": 0.0175, + "symbol": "circle" + }, + "name": "6", + "showlegend": true, + "type": "splom" + }, + { + "dimensions": [ + { + "axis": { + "matches": true + }, + "label": "Σ cost", + "values": [ + 33975, + 34478, + 34536, + 35164, + 34876, + 35119, + 35445, + 35102, + 35656, + 36211, + 34755, + 34419, + 35432, + 35859, + 34977, + 35637, + 34935, + 36369, + 36263, + 35691, + 35808, + 35066, + 35559, + 35042, + 35654, + 35375, + 36381, + 36673, + 35929, + 35505, + 36049, + 36523, + 36467, + 36212, + 36011, + 37012 + ] + }, + { + "axis": { + "matches": true + }, + "label": "Σ MWh", + "values": [ + 166, + 159, + 169, + 167, + 173, + 161, + 164, + 163, + 177, + 181, + 173, + 159, + 180, + 159, + 165, + 171, + 149, + 160, + 158, + 161, + 153, + 155, + 149, + 163, + 165, + 148, + 170, + 168, + 159, + 167, + 159, + 161, + 166, + 177, + 154, + 171 + ] + }, + { + "axis": { + "matches": true + }, + "label": "duration", + "values": [ + 0.6764583333333333, + 0.688287037037037, + 0.6699537037037038, + 0.669699074074074, + 0.6675810185185185, + 0.6653703703703704, + 0.6733912037037038, + 0.6669328703703704, + 0.6753356481481482, + 0.6752199074074073, + 0.6635069444444445, + 0.6617129629629629, + 0.6804629629629629, + 0.6731134259259259, + 0.6758449074074074, + 0.6831597222222222, + 0.6608101851851852, + 0.676087962962963, + 0.6843055555555555, + 0.6584143518518518, + 0.6838773148148148, + 0.652175925925926, + 0.6919212962962963, + 0.6762152777777778, + 0.6738425925925925, + 0.653287037037037, + 0.6732986111111111, + 0.661261574074074, + 0.6760532407407407, + 0.6663657407407407, + 0.6732523148148148, + 0.673425925925926, + 0.6719560185185185, + 0.6636921296296296, + 0.6563541666666667, + 0.6889699074074075 + ] + } + ], + "hovertemplate": "nr barges=7
# barges=%{marker.size}
%{xaxis.title.text}=%{x}
%{yaxis.title.text}=%{y}", + "legendgroup": "7", + "marker": { + "color": "#ab63fa", + "size": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "sizemode": "area", + "sizeref": 0.0175, + "symbol": "circle" + }, + "name": "7", + "showlegend": true, + "type": "splom" + } + ], + "layout": { + "autosize": true, + "dragmode": "select", + "legend": { + "itemsizing": "constant", + "title": { + "text": "nr barges" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "autorange": true, + "range": [ + 20691.188562944568, + 43408.86455500242 + ], + "type": "linear" + }, + "xaxis2": { + "autorange": true, + "range": [ + 109.7603564253067, + 245.5637371772586 + ], + "type": "linear" + }, + "xaxis3": { + "autorange": true, + "range": [ + 0.5452941139720603, + 0.924871694915707 + ], + "type": "linear" + }, + "yaxis": { + "autorange": true, + "range": [ + 20691.188562944568, + 43408.86455500242 + ], + "type": "linear" + }, + "yaxis2": { + "autorange": true, + "range": [ + 109.7603564253067, + 245.5637371772586 + ], + "type": "linear" + }, + "yaxis3": { + "autorange": true, + "range": [ + 0.5452941139720603, + 0.924871694915707 + ], + "type": "linear" + } + } + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAABE0AAAFoCAYAAACixgUDAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQeYHVeZpr+quqFzDlIr52xJlizJEeeII2CbYJucYZchDOwsMzs7y8JOYJiBhQGGtOAINjY2NjY4y7IkW1aWrGjFbrU6576hqvb5/nOrddVuSVdWR/V/nkePpO6qulVvVZ17znf+//st3/d9aFMCSkAJKAEloASUgBJQAkpACSgBJaAElIASOI6ApaKJPhFKQAkoASWgBJSAElACSkAJKAEloASUgBJ4OwEVTfSpUAJKQAkoASWgBJSAElACSkAJKAEloASUQB8EVDTRx0IJKAEloASUgBJQAkpACSgBJaAElIASUAIqmugzoASUgBJQAkpACSgBJaAElIASUAJKQAkogcwIaKRJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkogMwIqmmTGSbdSAkpACSgBJaAElIASUAJKQAkoASWgBEYZARVNRtkN18tVAkpACSgBJaAElIASUAJKQAkoASWgBDIjoKJJZpx0KyWgBJSAElACSkAJKAEloASUgBJQAkpglBFQ0WSU3XC9XCWgBJSAElACSkAJKAEloASUgBJQAkog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znPtTsnh6DJ10SWJI9N2WHJuEF2UPFUS6GMCsfLxI7+is9K+sUytIz97KNEkVki7LaZE+6lQNOnjDufhSGAQEohOdZ5+5LgOZdKj53syr7K3yJLD0Uaw0Z+T8TL62LbgIoJwb0sOUzQZhBcvTznhBCiaJLwL2AASIAESIAESIAESIAESIAESIAESIIFkJEDRJBl7hW0iARIgARIgARIgARIgARIgARIgARJIOAGKJgnvAjaABEiABEiABEiABEiABEiABEiABEggGQlQNEnGXmGbSIAESIAESIAESIAESIAESIAESIAEEk6AoknCu4ANIAESIAESIAESIAESIAESIAESIAESSEYCFE2SsVfYJhIgARIgARIgARIgARIgARIgARIggYQToGiS8C5gA0iABEiABEiABEiABEiABEiABEiABJKRAEWTZOwVtokESIAESIAESIAESIAESIAESIAESCDhBCiaJLwL2AASIAESIAESIAESIAESIAESIAESIIFkJEDRJBl7hW0iARIgARIgARIgARIgARIgARIgARJIOAGKJgnvAjaABEiABEiABEiABEiABEiABEiABEggGQlQNEnGXmGbSIAESIAESIAESIAESIAESIAESIAEEk6AoknCu4ANIAESIAESIAESIAESIAESIAESIAESSEYCFE2SsVfYJhIgARIgARIgARIgARIgARIgARIggYQToGiS8C5gA0iABEiABEiABEiABEiABEiABEiABJKRAEWTZOwVtokESIAESIAESIAESIAESIAESIAESCDhBCiaJLwL2AASIAESIAESIAESIAESIAESIAESIIFkJEDRJBl7hW0iARIgARIgARIgARIgARIgARIgARJIOAGKJgnvAjaABEiABEiABEiABEiABEiABEiABEggGQlQNEnGXmGbSIAESIAESIAESIAESIAESIAESIAEEk6AoknCu4ANIAESIAESIAESIAESIAESIAESIAESSEYCFE2SsVfYJhIgARIgARIgARIgARIgARIgARIggYQToGiS8C5gA0iABEiABEiABEiABEiABEiABEiABJKRAEWTZOwVtokESIAESIAESIAESIAESIAESIAESCDhBCiaJLwL2AASIAESIAESIAESIAESIAESIAESIIFkJEDRJBl7hW0iARIgARIgARIgARIgARIgARIgARJIOAGKJgnvAjaABEiABEiABEiABEiABEiABEiABEggGQlQNEnGXmGbSIAESIAESIAESIAESIAESIAESIAEEk6AoknCu4ANIAESIAESIAESIAESIAESIAESIAESSEYCFE2SsVfYJhIgARIgARIgARIgARIgARIgARIggYQToGiS8C5gA0iABEiABEiABEiABEiABEiABEiABJKRAEWTZOwVtokESIAESIAESIAESIAESIAESIAESCDhBCiaJLwL2AASIAESIAESIAESIAESIAESIAESIIFkJEDRJBl7hW0iARIgARIgARIgARIgARIgARIgARJIOAGKJgnvAjaABEiABEiABEiABEiABEiABEiABEggGQlQNEnGXmGbSIAESIAESIAESIAESIAESIAESIAEEk6AoknCu4ANIAESIAESIAESIAESIAESIAESIAESSEYCFE2SsVfYJhIgARIgARIgARIgARIgARIgARIggYQToGiS8C5gA0iABEiABEiABEiABEiABEiABEiABJKRAEWTZOwVtokESIAESIAESIAESIAESIAESIAESCDhBP4fTW2rMklzn+IAAAAASUVORK5CYII=", + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.express as px\n", + "scenarios['nr barges'] = [str(x) for x in scenarios['# barges']]\n", + "fig = px.scatter_matrix(scenarios[scenarios['# barges'].isin([4,5,6,7])],\n", + " dimensions=['Σ cost','Σ MWh','duration'],\n", + " color=\"nr barges\", size='# barges')\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "a2125fd6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWhΣ MWh waitingnr bargescriterionfleet
scenario
3125.42.3696766885135020.4170831Σ cost['Barge III']
8125.62.3269687038834720.1400001duration['Carrier A']
8125.62.3269687038834720.1400001Σ MWh['Carrier A']
23255.21.126551371162175.6275002Σ cost['Carrier A', 'Extra 2']
23255.21.126551371162175.6275002duration['Carrier A', 'Extra 2']
23255.21.126551371162175.6275002Σ MWh['Carrier A', 'Extra 2']
105380.20.814398302771891.7633333Σ cost['Carrier A', 'Barge I', 'Extra 1']
105380.20.814398302771891.7633333duration['Carrier A', 'Barge I', 'Extra 1']
60377.60.839225312421772.0683333Σ MWh['Carrier C', 'Barge III', 'Extra 3']
185498.70.658275258041720.0911114Σ cost['Barge II', 'Barge III', 'Extra 1', 'Extra 2']
185498.70.658275258041720.0911114duration['Barge II', 'Barge III', 'Extra 1', 'Extra 2']
164491.20.725567292241610.6713894Σ MWh['Carrier A', 'Carrier B', 'Extra 1', 'Extra 3']
2565100.00.659965281481710.0000005Σ cost['Barge I', 'Barge III', 'Extra 1', 'Extra 2',...
3125100.00.652037296811610.0000005duration['Carrier A', 'Barge I', 'Barge II', 'Barge II...
2655100.00.663380289311540.0000005Σ MWh['Carrier B', 'Barge I', 'Extra 1', 'Extra 2',...
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh Σ MWh waiting \\\n", + "scenario \n", + "3 1 25.4 2.369676 68851 350 20.417083 \n", + "8 1 25.6 2.326968 70388 347 20.140000 \n", + "8 1 25.6 2.326968 70388 347 20.140000 \n", + "23 2 55.2 1.126551 37116 217 5.627500 \n", + "23 2 55.2 1.126551 37116 217 5.627500 \n", + "23 2 55.2 1.126551 37116 217 5.627500 \n", + "105 3 80.2 0.814398 30277 189 1.763333 \n", + "105 3 80.2 0.814398 30277 189 1.763333 \n", + "60 3 77.6 0.839225 31242 177 2.068333 \n", + "185 4 98.7 0.658275 25804 172 0.091111 \n", + "185 4 98.7 0.658275 25804 172 0.091111 \n", + "164 4 91.2 0.725567 29224 161 0.671389 \n", + "256 5 100.0 0.659965 28148 171 0.000000 \n", + "312 5 100.0 0.652037 29681 161 0.000000 \n", + "265 5 100.0 0.663380 28931 154 0.000000 \n", + "\n", + " nr barges criterion \\\n", + "scenario \n", + "3 1 Σ cost \n", + "8 1 duration \n", + "8 1 Σ MWh \n", + "23 2 Σ cost \n", + "23 2 duration \n", + "23 2 Σ MWh \n", + "105 3 Σ cost \n", + "105 3 duration \n", + "60 3 Σ MWh \n", + "185 4 Σ cost \n", + "185 4 duration \n", + "164 4 Σ MWh \n", + "256 5 Σ cost \n", + "312 5 duration \n", + "265 5 Σ MWh \n", + "\n", + " fleet \n", + "scenario \n", + "3 ['Barge III'] \n", + "8 ['Carrier A'] \n", + "8 ['Carrier A'] \n", + "23 ['Carrier A', 'Extra 2'] \n", + "23 ['Carrier A', 'Extra 2'] \n", + "23 ['Carrier A', 'Extra 2'] \n", + "105 ['Carrier A', 'Barge I', 'Extra 1'] \n", + "105 ['Carrier A', 'Barge I', 'Extra 1'] \n", + "60 ['Carrier C', 'Barge III', 'Extra 3'] \n", + "185 ['Barge II', 'Barge III', 'Extra 1', 'Extra 2'] \n", + "185 ['Barge II', 'Barge III', 'Extra 1', 'Extra 2'] \n", + "164 ['Carrier A', 'Carrier B', 'Extra 1', 'Extra 3'] \n", + "256 ['Barge I', 'Barge III', 'Extra 1', 'Extra 2',... \n", + "312 ['Carrier A', 'Barge I', 'Barge II', 'Barge II... \n", + "265 ['Carrier B', 'Barge I', 'Extra 1', 'Extra 2',... " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# list top options for all # barges x KPI\n", + "li = []\n", + "criterion = []\n", + "fleet = []\n", + "for nb in range(1,6):\n", + " tmp = scenarios[scenarios['# barges']==nb]\n", + " if len(tmp) > 0:\n", + " for key in ['Σ cost','duration','Σ MWh']:\n", + " idx = tmp[[key]].idxmin().values[0]\n", + " criterion.append(key)\n", + " fleet.append(str(fleets[idx]))\n", + " li.append(tmp[tmp.index==idx])\n", + "opt = pd.concat(li)\n", + "opt['criterion']=criterion\n", + "opt['fleet'] = fleet\n", + "opt.index.name='scenario'\n", + "opt.sort_values('# barges')\n", + "opt.to_csv('best.csv')\n", + "opt" + ] + }, + { + "cell_type": "markdown", + "id": "5df139e1-96f1-4b26-8f30-23968c5b8f82", + "metadata": {}, + "source": [ + "# Analyse one scenario in detail" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "9449fab9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "185" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scenario_index = scenarios['Σ cost'].idxmin()\n", + "scenario_index" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "dc17bd87", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Barge II', 'Barge III', 'Carrier A', 'Cutter T', 'Extra 1'}" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fleet_vessels = set(['Barge II','Carrier A','Barge III','Extra 1','Cutter T'])\n", + "fleet_vessels" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "b9453758", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "scenario_index 223\n" + ] + } + ], + "source": [ + "for scenario_index, res in enumerate(results):\n", + " fleet_ = set(list(res['vessels'].keys()))\n", + "# print(fleet_)\n", + " if fleet_==fleet_vessels:\n", + " print('scenario_index',scenario_index)\n", + "# scenario_index = 223" + ] + }, + { + "cell_type": "markdown", + "id": "a81e634c", + "metadata": {}, + "source": [ + "## Example plots for 1 chosen scenario" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "9aa8b351", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# bargescutter occupancydurationΣ costΣ MWhΣ MWh waitingnr barges
5007100.00.68897370121710.07
\n", + "
" + ], + "text/plain": [ + " # barges cutter occupancy duration Σ cost Σ MWh Σ MWh waiting \\\n", + "500 7 100.0 0.68897 37012 171 0.0 \n", + "\n", + " nr barges \n", + "500 7 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vessels = results[scenario_index]['vessels']\n", + "sites = results[scenario_index]['sites']\n", + "activities = results[scenario_index]['activities']\n", + "\n", + "cutter = vessels[cutter_name]\n", + "to_site = sites[to_site_name]\n", + "from_site = sites[from_site_name]\n", + "scenarios[scenarios.index==scenario_index]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "78603c28", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
# tripsstartfinishamount sumMWhMWh waitingduration actualduration theorycost actualproduction actualproduction theoryoccupancy [%]
name
Barge I31970-01-01 00:00:001970-01-01 12:16:5112.014.7749500.10828344211.024720.02559.00.0008140.00145655.9
Barge II31970-01-01 00:00:001970-01-01 13:36:0712.017.1449720.11580648967.028122.02834.00.0007350.00128057.4
Barge III41970-01-01 00:00:001970-01-01 15:27:3320.019.9863390.11689455653.034612.03221.00.0014370.00231162.2
Carrier A31970-01-01 00:00:001970-01-01 13:01:2512.016.8792060.10628946885.027753.03256.00.0007680.00129759.2
Carrier B31970-01-01 00:00:001970-01-01 16:32:079.020.4896390.14797259527.032892.04134.00.0004540.00082155.3
Carrier C41970-01-01 00:00:001970-01-01 14:45:5320.019.9724500.10300653153.034612.03691.00.0015050.00231165.1
Cutter T41970-01-01 00:34:111970-01-01 14:52:31100.041.6666670.00000051500.051500.014902.00.0077670.007767100.0
Extra 131970-01-01 00:00:001970-01-01 14:29:3115.019.7535060.10767252171.032790.02415.00.0008630.00137262.9
\n", + "
" + ], + "text/plain": [ + " # trips start finish amount sum \\\n", + "name \n", + "Barge I 3 1970-01-01 00:00:00 1970-01-01 12:16:51 12.0 \n", + "Barge II 3 1970-01-01 00:00:00 1970-01-01 13:36:07 12.0 \n", + "Barge III 4 1970-01-01 00:00:00 1970-01-01 15:27:33 20.0 \n", + "Carrier A 3 1970-01-01 00:00:00 1970-01-01 13:01:25 12.0 \n", + "Carrier B 3 1970-01-01 00:00:00 1970-01-01 16:32:07 9.0 \n", + "Carrier C 4 1970-01-01 00:00:00 1970-01-01 14:45:53 20.0 \n", + "Cutter T 4 1970-01-01 00:34:11 1970-01-01 14:52:31 100.0 \n", + "Extra 1 3 1970-01-01 00:00:00 1970-01-01 14:29:31 15.0 \n", + "\n", + " MWh MWh waiting duration actual duration theory \\\n", + "name \n", + "Barge I 14.774950 0.108283 44211.0 24720.0 \n", + "Barge II 17.144972 0.115806 48967.0 28122.0 \n", + "Barge III 19.986339 0.116894 55653.0 34612.0 \n", + "Carrier A 16.879206 0.106289 46885.0 27753.0 \n", + "Carrier B 20.489639 0.147972 59527.0 32892.0 \n", + "Carrier C 19.972450 0.103006 53153.0 34612.0 \n", + "Cutter T 41.666667 0.000000 51500.0 51500.0 \n", + "Extra 1 19.753506 0.107672 52171.0 32790.0 \n", + "\n", + " cost actual production actual production theory occupancy [%] \n", + "name \n", + "Barge I 2559.0 0.000814 0.001456 55.9 \n", + "Barge II 2834.0 0.000735 0.001280 57.4 \n", + "Barge III 3221.0 0.001437 0.002311 62.2 \n", + "Carrier A 3256.0 0.000768 0.001297 59.2 \n", + "Carrier B 4134.0 0.000454 0.000821 55.3 \n", + "Carrier C 3691.0 0.001505 0.002311 65.1 \n", + "Cutter T 14902.0 0.007767 0.007767 100.0 \n", + "Extra 1 2415.0 0.000863 0.001372 62.9 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# determine occupancy per vessel\n", + "\n", + "fleet, project = simulation_analysis(results[scenario_index], vessel_specs, cutter_name, total_amount)\n", + "fleet.sort_values(by=[\"name\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8f993fc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(181,88,142)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51" + ], + "y": [ + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(188,95,149)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:40:17", + "1970-01-01T00:40:17", + "1970-01-01T00:40:17", + "1970-01-01T04:24:45", + "1970-01-01T04:24:45", + "1970-01-01T05:05:02", + "1970-01-01T05:05:02", + "1970-01-01T05:05:02", + "1970-01-01T08:43:05", + "1970-01-01T08:43:05", + "1970-01-01T09:23:22", + "1970-01-01T09:23:22", + "1970-01-01T09:23:22" + ], + "y": [ + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(195,102,156)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T03:44:28", + "1970-01-01T03:44:28", + "1970-01-01T04:24:45", + "1970-01-01T04:24:45", + "1970-01-01T04:24:45", + "1970-01-01T08:02:48", + "1970-01-01T08:02:48", + "1970-01-01T08:43:05", + "1970-01-01T08:43:05", + "1970-01-01T08:43:05", + "1970-01-01T12:21:08", + "1970-01-01T12:21:08", + "1970-01-01T13:01:25", + "1970-01-01T13:01:25", + "1970-01-01T13:01:25" + ], + "y": [ + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(202,109,163)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:44:28", + "1970-01-01T03:44:28", + "1970-01-01T03:44:28", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T08:02:48", + "1970-01-01T08:02:48", + "1970-01-01T08:02:48", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:21:08", + "1970-01-01T12:21:08", + "1970-01-01T12:21:08" + ], + "y": [ + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(209,116,170)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:49:48", + "1970-01-01T00:49:48", + "1970-01-01T00:49:48", + "1970-01-01T06:32:07", + "1970-01-01T06:32:07", + "1970-01-01T07:21:55", + "1970-01-01T07:21:55", + "1970-01-01T07:21:55", + "1970-01-01T11:32:07", + "1970-01-01T11:32:07", + "1970-01-01T12:21:55", + "1970-01-01T12:21:55", + "1970-01-01T12:21:55" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(216,123,177)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:42:19", + "1970-01-01T05:42:19", + "1970-01-01T05:42:19", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:42:19", + "1970-01-01T10:42:19", + "1970-01-01T10:42:19", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T15:42:19", + "1970-01-01T15:42:19", + "1970-01-01T15:42:19" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(223,130,184)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(230,137,191)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T05:42:19", + "1970-01-01T05:42:19", + "1970-01-01T06:32:07", + "1970-01-01T06:32:07", + "1970-01-01T06:32:07", + "1970-01-01T10:42:19", + "1970-01-01T10:42:19", + "1970-01-01T11:32:07", + "1970-01-01T11:32:07", + "1970-01-01T11:32:07", + "1970-01-01T15:42:19", + "1970-01-01T15:42:19", + "1970-01-01T16:32:07", + "1970-01-01T16:32:07", + "1970-01-01T16:32:07" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(237,144,198)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31" + ], + "y": [ + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(244,151,205)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T01:50:02", + "1970-01-01T01:50:02", + "1970-01-01T02:24:13", + "1970-01-01T02:24:13", + "1970-01-01T02:24:13", + "1970-01-01T06:08:22", + "1970-01-01T06:08:22", + "1970-01-01T06:42:33", + "1970-01-01T06:42:33", + "1970-01-01T06:42:33", + "1970-01-01T09:53:22", + "1970-01-01T09:53:22", + "1970-01-01T10:27:33", + "1970-01-01T10:27:33", + "1970-01-01T10:27:33", + "1970-01-01T14:11:42", + "1970-01-01T14:11:42", + "1970-01-01T14:45:53", + "1970-01-01T14:45:53", + "1970-01-01T14:45:53" + ], + "y": [ + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(251,158,212)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:50:02", + "1970-01-01T01:50:02", + "1970-01-01T01:50:02", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:08:22", + "1970-01-01T06:08:22", + "1970-01-01T06:08:22", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:53:22", + "1970-01-01T09:53:22", + "1970-01-01T09:53:22", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:11:42", + "1970-01-01T14:11:42", + "1970-01-01T14:11:42" + ], + "y": [ + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(2,165,219)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T02:24:13", + "1970-01-01T02:24:13", + "1970-01-01T02:58:24", + "1970-01-01T02:58:24", + "1970-01-01T02:58:24", + "1970-01-01T06:42:33", + "1970-01-01T06:42:33", + "1970-01-01T07:16:44", + "1970-01-01T07:16:44", + "1970-01-01T07:16:44", + "1970-01-01T10:27:33", + "1970-01-01T10:27:33", + "1970-01-01T11:01:44", + "1970-01-01T11:01:44", + "1970-01-01T11:01:44" + ], + "y": [ + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(9,172,226)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Barge I", + "type": "scatter", + "x": [ + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:05:31", + "1970-01-01T03:05:31", + "1970-01-01T03:05:31", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:23:51", + "1970-01-01T07:23:51", + "1970-01-01T07:23:51", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:42:11", + "1970-01-01T11:42:11", + "1970-01-01T11:42:11" + ], + "y": [ + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(16,179,233)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31" + ], + "y": [ + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(23,186,240)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Barge I", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:34:40", + "1970-01-01T00:34:40", + "1970-01-01T00:34:40", + "1970-01-01T03:40:11", + "1970-01-01T03:40:11", + "1970-01-01T04:14:51", + "1970-01-01T04:14:51", + "1970-01-01T04:14:51", + "1970-01-01T07:58:31", + "1970-01-01T07:58:31", + "1970-01-01T08:33:11", + "1970-01-01T08:33:11", + "1970-01-01T08:33:11" + ], + "y": [ + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(30,193,247)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T03:05:31", + "1970-01-01T03:05:31", + "1970-01-01T03:40:11", + "1970-01-01T03:40:11", + "1970-01-01T03:40:11", + "1970-01-01T07:23:51", + "1970-01-01T07:23:51", + "1970-01-01T07:58:31", + "1970-01-01T07:58:31", + "1970-01-01T07:58:31", + "1970-01-01T11:42:11", + "1970-01-01T11:42:11", + "1970-01-01T12:16:51", + "1970-01-01T12:16:51", + "1970-01-01T12:16:51" + ], + "y": [ + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(37,200,254)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Barge II", + "type": "scatter", + "x": [ + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:18:29", + "1970-01-01T04:18:29", + "1970-01-01T04:18:29", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:36:49", + "1970-01-01T08:36:49", + "1970-01-01T08:36:49", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:09", + "1970-01-01T12:55:09", + "1970-01-01T12:55:09" + ], + "y": [ + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(44,207,5)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11" + ], + "y": [ + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(51,214,12)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T04:18:29", + "1970-01-01T04:18:29", + "1970-01-01T04:59:27", + "1970-01-01T04:59:27", + "1970-01-01T04:59:27", + "1970-01-01T08:36:49", + "1970-01-01T08:36:49", + "1970-01-01T09:17:47", + "1970-01-01T09:17:47", + "1970-01-01T09:17:47", + "1970-01-01T12:55:09", + "1970-01-01T12:55:09", + "1970-01-01T13:36:07", + "1970-01-01T13:36:07", + "1970-01-01T13:36:07" + ], + "y": [ + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(58,221,19)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Barge II", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:40:58", + "1970-01-01T00:40:58", + "1970-01-01T00:40:58", + "1970-01-01T04:59:27", + "1970-01-01T04:59:27", + "1970-01-01T05:40:25", + "1970-01-01T05:40:25", + "1970-01-01T05:40:25", + "1970-01-01T09:17:47", + "1970-01-01T09:17:47", + "1970-01-01T09:58:45", + "1970-01-01T09:58:45", + "1970-01-01T09:58:45" + ], + "y": [ + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(65,228,26)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:31:42", + "1970-01-01T02:31:42", + "1970-01-01T03:05:53", + "1970-01-01T03:05:53", + "1970-01-01T03:05:53", + "1970-01-01T06:50:02", + "1970-01-01T06:50:02", + "1970-01-01T07:24:13", + "1970-01-01T07:24:13", + "1970-01-01T07:24:13", + "1970-01-01T11:08:22", + "1970-01-01T11:08:22", + "1970-01-01T11:42:33", + "1970-01-01T11:42:33", + "1970-01-01T11:42:33", + "1970-01-01T14:53:22", + "1970-01-01T14:53:22", + "1970-01-01T15:27:33", + "1970-01-01T15:27:33", + "1970-01-01T15:27:33" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(72,235,33)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Barge III", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T03:05:53", + "1970-01-01T03:05:53", + "1970-01-01T03:40:04", + "1970-01-01T03:40:04", + "1970-01-01T03:40:04", + "1970-01-01T07:24:13", + "1970-01-01T07:24:13", + "1970-01-01T07:58:24", + "1970-01-01T07:58:24", + "1970-01-01T07:58:24", + "1970-01-01T11:42:33", + "1970-01-01T11:42:33", + "1970-01-01T12:16:44", + "1970-01-01T12:16:44", + "1970-01-01T12:16:44" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(79,242,40)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(86,249,47)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Barge III", + "type": "scatter", + "x": [ + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:31:42", + "1970-01-01T02:31:42", + "1970-01-01T02:31:42", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:50:02", + "1970-01-01T06:50:02", + "1970-01-01T06:50:02", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:08:22", + "1970-01-01T11:08:22", + "1970-01-01T11:08:22", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:53:22", + "1970-01-01T14:53:22", + "1970-01-01T14:53:22" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(93,0,54)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T05:06:01", + "1970-01-01T05:06:01", + "1970-01-01T05:52:51", + "1970-01-01T05:52:51", + "1970-01-01T05:52:51", + "1970-01-01T09:24:21", + "1970-01-01T09:24:21", + "1970-01-01T10:11:11", + "1970-01-01T10:11:11", + "1970-01-01T10:11:11", + "1970-01-01T13:42:41", + "1970-01-01T13:42:41", + "1970-01-01T14:29:31", + "1970-01-01T14:29:31", + "1970-01-01T14:29:31" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(100,7,61)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: sailing full Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T05:06:01", + "1970-01-01T05:06:01", + "1970-01-01T05:06:01", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:24:21", + "1970-01-01T09:24:21", + "1970-01-01T09:24:21", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:42:41", + "1970-01-01T13:42:41", + "1970-01-01T13:42:41" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(107,14,68)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: sailing empty Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T00:46:50", + "1970-01-01T00:46:50", + "1970-01-01T00:46:50", + "1970-01-01T05:52:51", + "1970-01-01T05:52:51", + "1970-01-01T06:39:41", + "1970-01-01T06:39:41", + "1970-01-01T06:39:41", + "1970-01-01T10:11:11", + "1970-01-01T10:11:11", + "1970-01-01T10:58:01", + "1970-01-01T10:58:01", + "1970-01-01T10:58:01" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(114,21,75)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(121,28,82)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51" + ], + "y": [ + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Carrier A", + "Carrier A", + "Carrier A", + "Carrier A", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(128,35,89)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31" + ], + "y": [ + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Carrier B", + "Carrier B", + "Carrier B", + "Carrier B", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(135,42,96)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31" + ], + "y": [ + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Carrier C", + "Carrier C", + "Carrier C", + "Carrier C", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(142,49,103)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11" + ], + "y": [ + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Barge II", + "Barge II", + "Barge II", + "Barge II", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(149,56,110)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11" + ], + "y": [ + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Barge III", + "Barge III", + "Barge III", + "Barge III", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(156,63,117)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31" + ], + "y": [ + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Barge I", + "Barge I", + "Barge I", + "Barge I", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(163,70,124)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51" + ], + "y": [ + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Extra 1", + "Extra 1", + "Extra 1", + "Extra 1", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + } + ], + "layout": { + "autosize": true, + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T16:32:07" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + }, + "type": "date" + }, + "yaxis": { + "autorange": true, + "range": [ + -0.38888888888888895, + 7.388888888888889 + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + }, + "type": "category" + } + } + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAABE0AAAFoCAYAAACixgUDAAAAAXNSR0IArs4c6QAAIABJREFUeF7svQt4VsW5930/eXJOSAhnYgAVWwHFA1ZAqxKPVBRssUSoom74KFXbbpUXNujr9nVbixuquGurm/JhbYVqYde3QkWpW0VrK55atwrSKgcBOUpCQiDn5L1m0Xk6mazzmrVmPXn+ua5elWSOv3tm1qz/uu+ZREdHRwfhBwRAAARAAARAAARAAARAAARAAARAAARAoBOBBEQTjAgQAAEQAAEQAAEQAAEQAAEQAAEQAAEQ6EoAoglGBQiAAAiAAAiAAAiAAAiAAAiAAAiAAAiYEIBogmEBAiAAAiAAAiAAAiAAAiAAAiAAAiAAAhBNMAZAAARAAARAAARAAARAAARAAARAAARAwB0BeJq444RUIAACIAACIAACIAACIAACIAACIAACGUYAokmGGRzdBQEQAAEQAAEQAAEQAAEQAAEQAAEQcEcAook7TkgFAiAAAiAAAiAAAiAAAiAAAiAAAiCQYQQgmmSYwdFdEAABEAABEAABEAABEAABEAABEAABdwQgmrjjhFQgAAIgAAIgAAIgAAIgAAIgAAIgAAIZRgCiSYYZHN0FARAAARAAARAAARAAARAAARAAARBwRwCiiTtOSAUCIAACIAACIAACIAACIAACIAACIJBhBCCaZJjB0V0QAAEQAAEQAAEQAAEQAAEQAAEQAAF3BCCauOOEVCAAAiAAAiAAAiAAAiAAAiAAAiAAAhlGAKJJhhkc3QUBEAABEAABEAABEAABEAABEAABEHBHAKKJO05IBQIgAAIgAAIgAAIgAAIgAAIgAAIgkGEEIJpkmMHRXRAAARAAARAAARAAARAAARAAARAAAXcEIJq444RUIAACIAACIAACIAACIAACIAACIAACGUYAokmGGRzdBQEQAAEQAAEQAAEQAAEQAAEQAAEQcEcAook7TkgFAiAAAiAAAiAAAiAAAiAAAiAAAiCQYQQgmmSYwdFdEAABEAABEAABEAABEAABEAABEAABdwQgmrjjhFQgAAIgAAIgAAIgAAIgAAIgAAIgAAIZRgCiSYYZHN0FARAAARAAARAAARAAARAAARAAARBwRwCiiTtOSAUCIAACIAACIAACIAACIAACIAACIJBhBCCaZJjB0V0QAAEQAAEQAAEQ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EAABEAABEAABEAABEAABEAABEHBJAKKJS1BIBgIgAAIgAAIgAAIgAAIgAAIgAAIgkFkEIJpklr3RWxAAARAAARAAARAAARAAARAAARAAAZcEIJq4BIVkIAACIAACIAACIAACIAACIAACIAACmUUAoklm2Ru9BQEQAAEQAAEQAAEQAAEQAAEQAAEQcEkAoolLUEgGAiAAAiAAAiAAAiAAAiAAAiAAAiCQWQQgmmSWvdFbEAABEAABEAABEAABEAABEAABEAABlwQgmrgEhWQgAAIgAAIgAAIgAAIgAAIgAAIgAAKZRQCiSWbZG70FARAAARAAARAAARAAARAAARAAARBwSQCiiUtQSAYCIAACIAACIAACIAACIAACIAACIJBZBCCaZJa90VsQAAEQAAEQAAEQAAEQAAEQAAEQAAGXBCCauASFZCAAAiAAAiAAAiAAAiAAAiAAAiAAAplFAKJJZtkbvQUBEAABEAABEAABEAABEAABEAABEHBJAKKJS1BIBgIgAAIgAAIgAAIgAAIgAAIgAAIgkFkEIJpklr3RWxAAARAAARAAARAAARAAARAAARAAAZcEIJq4BIVkIAACIAACIAACIAACIAACIAACIAACmUUAoklm2Ru9BQEQAAEQAAEQAAEQAAEQAAEQAAEQcEkAoolLUEgGAiAAAiAAAiAAAiAAAiAAAiAAAiCQWQQgmmSWvdFbEAABEAABEAABEAABEAABEAABEAABlwQgmrgEhWQgAAIgAAIgAAIgAAIgAAIgAAIgAAKZRQCiSWbZG70FARAAARAAARAAARAAARAAARAAARBwSQCiiUtQSAYCIAACIAACIAACIAACIAACIAACIJBZBCxFk7q6Olq+fDnV1tZSVVUVjRgxgl577TV69dVXqbS0lGbOnEklJSWZRQu9BQEQAAEQAAEQAAEQAAEQAAEQAAEQyBgCtp4mTCTp27evIZhs3ryZNm3aRFOmTDH++80336QbbriB8vLyMgYWOgoCIAACIAACIAACIAACIAACIAACIJA5BGxFk9///vc0duxYw6NE/G+GZ82aNTRq1CiqqKjIHFroKQiAAAiAAAiAAAiAAAiAAAiAAAiAQMYQsA3PWb16teFZwrxJmEgyfvz4VEgORJOMGSPoKAiAAAiAAAiAAAiAAAiAAAiAAAhkJAFXogkjwwUU5nXS1NREGzZsoMrKSoTnZOSwQadBAARAAARAAARAAARAAARAAARAoPsTsA3PYULJaaedZoTgbNy4ka644gqDyO7du43/sdAd/IAACIAACIAACIAACIAACIAACIAACIBAdyRgK5owYeSpp54y+j19+nRDPOE36LCQHf677ggGfQIBEAABEAABEAABEAABEAABEAABEMhsAraiSWajQe9BAARAAARAAARAAARAAARAAARAAAQymQBEk0y2PvoOAiAAAiAAAiAAAiAAAiAAAiAAAiBgSQCiCQYHCIAACIAACIAACIAACIAACIAACIAACJgQgGiCYQECIAACIAACIAACIAACIAACIAACIAACfkSTuro6Wr58OdXW1lJVVRUNHTqUVqxYQeeddx6NGDECUEEABEAABEAABEAABEAABEAABEAABECgWxJwvD1n1apVhljy5ptvGtcPM6GECSnr16+nSZMmEbtFBz8gAAIgAAIgAAIgAAIgAAIgAAIgAAIg0N0IWIomTU1NtHr1aqqsrDSuGmb/zUUT9rc1a9bQ+PHjqaSkpLsxQX9AAARAAARAAARAAARAAARAAARAAARAgCxFE+ZNwoSSKVOmGMKILJqIggo4ggAIgAAIgAAIgAAIgAAIgAAIgAAIgEB3IwDRpLtZFP0BARAAARAAARAAARAAARAAARAAARBQQsBWNGEHvrJzS+TwnN27d9OGDRsMLxScaaLEDigEBEAABEAABEAABEAABEAABEAABEAgZgRsD4LdvHmzceDrzJkzjf9nZ5qwUB1+OCwTU/ADAiAAAiAAAiAAAiAAAiAAAiAAAiAAAt2RgK1owjrMvEqeeuopYoe/sp/S0lJDRMEBsN1xOKBPIAACIAACIAACIAACIAACIAACIAACnICjaAJUIAACIAACIAACIAACIAACIAACIAACIJCJBCCaaLT6d0sv11i7t6qHXnwuXbf8Hm+ZunHqHgXZRIkEHTnW0o17GZ+u/ffUH1BWVlZ8GvT3lrS2ttIf//jH2LXLqkGDzh1Bn77xl7Rp76kXnUN73/8kbdr7vz74NeUWF6RNe6Ns6Prr/o1yktlRVum6rjfffJOam5tdp9eZcMDpQ+mz9zbrbIKnuodfPIY+f+9jT3l0Jp714qPU98tDdDYh9LqLC7Ip4WP/8uK3HqBcSoTePj8V/HXXNtq3bZefrJHnKa3oRwe2pkdb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3QYEIJrUrJGeXvVYS0o0adoRLcm3lZlCWW+mj7tBWtkbi8/7Fw/+vPhEAynuOvhD5oCeQyrPN02G6OduWjJaLA1TPNu5BHZsecus/9dnKq/gkOEfNuOmTKg83zQZVmlLbIJlqKxUvqXL/8nMm31e8kahdv2pMuIry7Ft4krtQ5t6LlGnXdmj3CAAAh8QgGiC3tA1BPRuN6ISmi/Uww5D1wyFrquo3IFGP/+g+fUltN0aTdF1AwIVzkygVbYki2jSzhtDOgLCdWw4c0M6vphFNKlSPCu6vkgPBEAgngBEk3hWeBIEQAAEQAAEQAAEQAAEQAAEQAAEQKCLCEA06aLGRlVBAARAAARAAARAAARAAARAAARAAATiCUA0iWeFJ0EABEAABEAABEAABEAABEAABEAABLqIAESTLmpsVBUEQAAEQAAEQAAEQAAEQAAEQAAEQCCeAESTeFZ4EgRAAARAAARAAARAAARAAARAAARAoIsIQDTposZGVUEABEAABEAABEAABEAABEAABEAABOIJQDSJZ4UnQQAEQAAEQAAEQAAEQAAEQAAEQAAEuogARJMuamxUFQRAAARAAARAAARAAARAAARAAARAIJ4ARJN4VngSBEAABEAABEAABEAABEAABEAABECgiwhANOmixkZVQQAEQAAEQAAEQAAEQAAEQAAEQAAE4glANIlnhSdBAARAAARAAARAAARAAARAAARAAAS6iABEky5qbFQVBEAABEAABEAABEAABEAABEAABEAgnsD/A71cokMxAHXyAAAAAElFTkSuQmCC", + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# activities per vessel\n", + "\n", + "fig = get_gantt_chart(vessels, id_map=activities)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "b7331bd0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(12,65,99)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(24,77,111)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(36,89,123)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(48,101,135)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(60,113,147)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(72,125,159)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(84,137,171)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(96,149,183)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T01:50:02", + "1970-01-01T01:50:02", + "1970-01-01T02:24:13", + "1970-01-01T02:24:13", + "1970-01-01T02:24:13", + "1970-01-01T06:08:22", + "1970-01-01T06:08:22", + "1970-01-01T06:42:33", + "1970-01-01T06:42:33", + "1970-01-01T06:42:33", + "1970-01-01T09:53:22", + "1970-01-01T09:53:22", + "1970-01-01T10:27:33", + "1970-01-01T10:27:33", + "1970-01-01T10:27:33", + "1970-01-01T14:11:42", + "1970-01-01T14:11:42", + "1970-01-01T14:45:53", + "1970-01-01T14:45:53", + "1970-01-01T14:45:53" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(108,161,195)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T03:44:28", + "1970-01-01T03:44:28", + "1970-01-01T04:24:45", + "1970-01-01T04:24:45", + "1970-01-01T04:24:45", + "1970-01-01T08:02:48", + "1970-01-01T08:02:48", + "1970-01-01T08:43:05", + "1970-01-01T08:43:05", + "1970-01-01T08:43:05", + "1970-01-01T12:21:08", + "1970-01-01T12:21:08", + "1970-01-01T13:01:25", + "1970-01-01T13:01:25", + "1970-01-01T13:01:25" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(120,173,207)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T04:18:29", + "1970-01-01T04:18:29", + "1970-01-01T04:59:27", + "1970-01-01T04:59:27", + "1970-01-01T04:59:27", + "1970-01-01T08:36:49", + "1970-01-01T08:36:49", + "1970-01-01T09:17:47", + "1970-01-01T09:17:47", + "1970-01-01T09:17:47", + "1970-01-01T12:55:09", + "1970-01-01T12:55:09", + "1970-01-01T13:36:07", + "1970-01-01T13:36:07", + "1970-01-01T13:36:07" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(132,185,219)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T02:31:42", + "1970-01-01T02:31:42", + "1970-01-01T03:05:53", + "1970-01-01T03:05:53", + "1970-01-01T03:05:53", + "1970-01-01T06:50:02", + "1970-01-01T06:50:02", + "1970-01-01T07:24:13", + "1970-01-01T07:24:13", + "1970-01-01T07:24:13", + "1970-01-01T11:08:22", + "1970-01-01T11:08:22", + "1970-01-01T11:42:33", + "1970-01-01T11:42:33", + "1970-01-01T11:42:33", + "1970-01-01T14:53:22", + "1970-01-01T14:53:22", + "1970-01-01T15:27:33", + "1970-01-01T15:27:33", + "1970-01-01T15:27:33" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(144,197,231)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T05:42:19", + "1970-01-01T05:42:19", + "1970-01-01T06:32:07", + "1970-01-01T06:32:07", + "1970-01-01T06:32:07", + "1970-01-01T10:42:19", + "1970-01-01T10:42:19", + "1970-01-01T11:32:07", + "1970-01-01T11:32:07", + "1970-01-01T11:32:07", + "1970-01-01T15:42:19", + "1970-01-01T15:42:19", + "1970-01-01T16:32:07", + "1970-01-01T16:32:07", + "1970-01-01T16:32:07" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(156,209,243)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T03:05:31", + "1970-01-01T03:05:31", + "1970-01-01T03:40:11", + "1970-01-01T03:40:11", + "1970-01-01T03:40:11", + "1970-01-01T07:23:51", + "1970-01-01T07:23:51", + "1970-01-01T07:58:31", + "1970-01-01T07:58:31", + "1970-01-01T07:58:31", + "1970-01-01T11:42:11", + "1970-01-01T11:42:11", + "1970-01-01T12:16:51", + "1970-01-01T12:16:51", + "1970-01-01T12:16:51" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(168,221,255)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: unloading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T05:06:01", + "1970-01-01T05:06:01", + "1970-01-01T05:52:51", + "1970-01-01T05:52:51", + "1970-01-01T05:52:51", + "1970-01-01T09:24:21", + "1970-01-01T09:24:21", + "1970-01-01T10:11:11", + "1970-01-01T10:11:11", + "1970-01-01T10:11:11", + "1970-01-01T13:42:41", + "1970-01-01T13:42:41", + "1970-01-01T14:29:31", + "1970-01-01T14:29:31", + "1970-01-01T14:29:31" + ], + "y": [ + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null, + "Reclamation", + "Reclamation", + "Reclamation", + "Reclamation", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(180,233,11)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(192,245,23)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(204,1,35)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(216,13,47)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(228,25,59)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(240,37,71)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(252,49,83)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51" + ], + "y": [ + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Trench", + "Trench", + "Trench", + "Trench", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null, + "Cutter T", + "Cutter T", + "Cutter T", + "Cutter T", + null + ] + } + ], + "layout": { + "autosize": true, + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:34:11", + "1970-01-01T16:32:07" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + }, + "type": "date" + }, + "yaxis": { + "autorange": true, + "range": [ + -0.1111111111111111, + 2.111111111111111 + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + }, + "type": "category" + } + } + }, + "image/png": "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", + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# activities per site and cutter\n", + "\n", + "fig = get_gantt_chart([from_site, to_site, cutter], id_map=activities)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "6141ac61", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(13,163,13)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier A", + "type": "scatter", + "x": [ + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51" + ], + "y": [ + "loading: loading Carrier A", + "loading: loading Carrier A", + "loading: loading Carrier A", + "loading: loading Carrier A", + null, + "loading: loading Carrier A", + "loading: loading Carrier A", + "loading: loading Carrier A", + "loading: loading Carrier A", + null, + "loading: loading Carrier A", + "loading: loading Carrier A", + "loading: loading Carrier A", + "loading: loading Carrier A", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(49,199,49)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier B", + "type": "scatter", + "x": [ + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31", + "1970-01-01T14:52:31" + ], + "y": [ + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null, + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + "loading: loading Carrier B", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(85,235,85)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Carrier C", + "type": "scatter", + "x": [ + "1970-01-01T00:34:11", + "1970-01-01T00:34:11", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T04:52:31", + "1970-01-01T04:52:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T09:19:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31" + ], + "y": [ + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + null, + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + null, + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + null, + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + "loading: loading Carrier C", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(121,15,121)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge I", + "type": "scatter", + "x": [ + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T02:30:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T06:49:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31", + "1970-01-01T11:07:31" + ], + "y": [ + "loading: loading Barge I", + "loading: loading Barge I", + "loading: loading Barge I", + "loading: loading Barge I", + null, + "loading: loading Barge I", + "loading: loading Barge I", + "loading: loading Barge I", + "loading: loading Barge I", + null, + "loading: loading Barge I", + "loading: loading Barge I", + "loading: loading Barge I", + "loading: loading Barge I", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(157,51,157)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge II", + "type": "scatter", + "x": [ + "1970-01-01T03:04:11", + "1970-01-01T03:04:11", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T07:22:31", + "1970-01-01T07:22:31", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T11:40:51", + "1970-01-01T11:40:51", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11" + ], + "y": [ + "loading: loading Barge II", + "loading: loading Barge II", + "loading: loading Barge II", + "loading: loading Barge II", + null, + "loading: loading Barge II", + "loading: loading Barge II", + "loading: loading Barge II", + "loading: loading Barge II", + null, + "loading: loading Barge II", + "loading: loading Barge II", + "loading: loading Barge II", + "loading: loading Barge II", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(193,87,193)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Barge III", + "type": "scatter", + "x": [ + "1970-01-01T01:15:51", + "1970-01-01T01:15:51", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T01:57:31", + "1970-01-01T05:34:11", + "1970-01-01T05:34:11", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T06:15:51", + "1970-01-01T09:52:31", + "1970-01-01T09:52:31", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T10:34:11", + "1970-01-01T13:37:31", + "1970-01-01T13:37:31", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11", + "1970-01-01T14:19:11" + ], + "y": [ + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null, + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + "loading: loading Barge III", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(229,123,229)", + "width": 10 + }, + "mode": "lines", + "name": "loading: loading Extra 1", + "type": "scatter", + "x": [ + "1970-01-01T03:37:31", + "1970-01-01T03:37:31", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T04:19:11", + "1970-01-01T07:55:51", + "1970-01-01T07:55:51", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T08:37:31", + "1970-01-01T12:14:11", + "1970-01-01T12:14:11", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51", + "1970-01-01T12:55:51" + ], + "y": [ + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null, + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + "loading: loading Extra 1", + null + ] + } + ], + "layout": { + "autosize": true, + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:34:11", + "1970-01-01T14:52:31" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + }, + "type": "date" + }, + "yaxis": { + "autorange": true, + "range": [ + -0.3333333333333333, + 6.333333333333333 + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + }, + "type": "category" + } + } + }, + "image/png": "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prcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAAAhCAAAQgAAEIZCSAaJIRFMUgAAEIQAACEIAABCAAAQhAAAIQaC8CiCbtFW96CwEIQAACEIAABCAAAQhAAAIQgEBGAogmGUFRDAIQgAAEIAABCEAAAhCAAAQgAIH2IoBo0l7xprcQgAAEIAABCEAA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", + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot only activities whose namespace (first letters) matches load*: 1 activty_type\n", + "\n", + "flat = pd.DataFrame(get_tree_as_list(activities))\n", + "loading = list(flat[flat['ActivityName'].str.startswith('loading')]['activity'].values)\n", + "fig = get_gantt_chart(loading)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "406b5d85", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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+Pe//417771XUQUdwLHujltwMNyCg7s8TlitrcWfG2b7XPd3t9DQQRq18zllpk5ZWRlCQ0Nx8OBBJCUltd++fPly7Nu3D/933Sr8gJwzdVyBEAKNrdOYqZua6wF3PueIiIiIlKKlubnLXUddTbO1Ge5aFxivEIBVAL3cocwlCQG7vRlqTe8vw7Y02aDzuPVMHINa7fRiSnNzM9wV9Jynm7n8TB1/f39oNBpUVlZ2uL2yshJBQTcvIqfX6zssgkn9Q6VSOWVqoKJ5Dt518URERETUDzxvvbi1K/LUuNB4nfJpcaD1bW01Ty/X//zEgs7Q4pSyq06nw/jx45Gdnd1+m91uR3Z2doeZO0RERERERERE1Dmn1V6XLl2KhQsXYsKECUhMTMRbb72FhoYGpKamOmtIRERERERERESK4bSiTkpKCqqqqrBy5UpUVFQgISEBu3fvvmnxZCIiIiIiIiIiuplTFkruq54sGkREREREREREpBQ9qXlItJQ5EREREREREdHQwaIOEREREREREZECsahDRERERERERKRALOoQERERERERESkQizpERERERERERArEog4RERERERERkQKxqENEREREREREpEAs6hARERERERERKRCLOkRERERERERECsSiDhERERERERGRArGoQ0RERERERESkQCzqEBEREREREREpEIs6REREREREREQKxKIOEREREREREZECsahDRERERERERKRALOoQERERERERESmQ1tkD6A0hBACgvr7eySMhIiIiIiIiIuo/bbWOttpHVxRZ1DGZTACA8PBwJ4+EiIiIiIiIiKj/mUwm+Pj4dHmMSnSn9ONi7HY7ysrK4O3tDZVK5ezh9Ep9fT3Cw8NRUlICo9Ho7OFQP2O+8mK28mK2cmO+8mK28mK2cmO+8mK2fSeEgMlkQkhICNTqrlfNUeRMHbVajbCwMGcPo18YjUY+0SXGfOXFbOXFbOXGfOXFbOXFbOXGfOXFbPvmdjN02nChZCIiIiIiIiIiBWJRh4iIiIiIiIhIgVjUcRK9Xo+0tDTo9XpnD4UGAPOVF7OVF7OVG/OVF7OVF7OVG/OVF7MdXIpcKJmIiIiIiIiIaKjjTB0iIiIiIiIiIgViUYeIiIiIiIiISIFY1CEiIiIiIiIiUiAWdYiIiIiIiIiIFIhFHSIiIiIiIiIiBWJRp9W6desQ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s2/fPsydOxdvvvkmFixYMCh9ugpZs92zZw927NiBtWvXAnDslGS326HVarF+/XosWrRoQPt3FbLmGxwcDK1W2+FL0LvuuguAY0euobYJxZCfqaPT6TB+/HhkZ2e332a325GdnY2kpKRutxMaGoqYmBjExMQgMjISgOP6+u+++67DyuJffPEFjEYjRo8e3esxd6fdpKSkDo+p7ZiePCYZyJovAGzZsgWpqanYsmULkpOTe92fUsmYrdFoxHfffYeCgoL2Py+88ALi4uJQUFCAiRMn9rpvJZExW8BxeU5ZWRmuXbvWfszp06ehVqsRFhbW676VRtZ8GxsboVZ3fFul0WgAOD5MDAVKzLY7kpKSsH//frS0tHToOy4uDsOGDRvQvl2FrNkCjm3Nk5OT8frrr+P5558f8P5cjazZ5ubmdng/9Yc//AHe3t4oKCjAY489NqB9uxJZ8500aRKsVivOnTvXftvp06cBoH18Q4pTl2l2EVu3bhV6vV5kZGSI48ePi+eff174+vp2WMm7vLxc5Ofniw0bNggAYv/+/SI/P7/LXUysVqu45557xMyZM0VBQYHYvXu3CAgIEK+88kqH4/Lz80V+fr4YP368mD9/vsjPzxeFhYV9areoqEgYDAaxbNkyceLECbFu3Tqh0WjE7t27+3CmlEnGfDMzM4VWqxXr1q0T5eXl7X9qa2v7cKaUR8ZsbzRUd7+SMVuTySTCwsLE448/LgoLC8W+ffvEHXfcIRYvXtyHM6VMMuabnp4utFqtePfdd8W5c+fEgQMHxIQJE0RiYmIfzpTyKC1bIYQ4c+aMyM/PFz/72c9EbGxsexttu7fU1taKwMBA8fTTT4tjx46JrVu3CoPBIP7xj3/04Uwpj4zZ7tmzRxgMBvHKK690eD811HYplDHbGw3l3a9kzNdms4lx48aJKVOmiCNHjojDhw+LiRMnihkzZvThTCkXizqt/va3v4mIiAih0+lEYmKi+Oabbzrcn5aWJgDc9Cc9Pb3LdouLi8Xs2bOFh4eH8Pf3F7/5zW9ES0tLh2M6azcyMrLP7ebk5IiEhASh0+lEdHT0bccqM9nynTp1aqftLly4sCenRQqyZXujoVrUEULObE+cOCGmT58uPDw8RFhYmFi6dKlobGzs9jmRiYz5vv3222L06NHCw8NDBAcHi6eeekqUlpZ2+5zIQmnZ3up36vnz59uP+e9//yvuv/9+odfrRWhoqPjLX/7Sk1MiDdmyXbhwYaf3T506tYdnRvlky/ZGQ7moI4Sc+V66dEn86Ec/El5eXiIwMFA888wzQ64g20YlxBCZE0xEREREREREJJEhv6YOEREREREREZESsahDRERERERERKRALOoQERERERERESkQizpERERERERERArEog4RERERERERkQKxqENEREREREREpEAs6hARERERERERKRCLOkRERERERERECsSiDhERERERERGRArGoQ0RERERERESkQCzqEBEREREREREp0P8DHvi0ww+bxXwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot overall amount s-curve\n", + "\n", + "fig = get_step_chart([from_site, to_site, *vessels.values()])" + ] + }, + { + "cell_type": "markdown", + "id": "3e81de2b", + "metadata": {}, + "source": [ + "## Export data to BI for interactive a posteriori analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "87cd1b2f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SiteNameSiteIDSiteClass
0Trench1240ebb4-4e8a-43b7-bf59-ab7b680f0483Site
1Reclamation31e9b640-8323-4960-96b8-9e776194a2bbSite
\n", + "
" + ], + "text/plain": [ + " SiteName SiteID SiteClass\n", + "0 Trench 1240ebb4-4e8a-43b7-bf59-ab7b680f0483 Site\n", + "1 Reclamation 31e9b640-8323-4960-96b8-9e776194a2bb Site" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_concepts(sites, 'Site', 'concepts_sites.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "5e5459b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VesselNameVesselIDVesselClass
0Carrier Aab02d4b2-9def-4ea9-9086-a53751eba353TransportProcessingResource
1Carrier Bb791503c-dd43-45ed-afcc-745e3950d7dfTransportProcessingResource
2Carrier Ceed2ecf1-dd0e-4138-9cc1-f2c9e833618aTransportProcessingResource
3Barge I831e3250-03ff-4d19-9888-bbdbc5645b98TransportProcessingResource
4Barge II96ed91f0-3447-4419-b1fc-d8b067504ea0TransportProcessingResource
5Barge III43f69783-54e7-41c4-89fd-d3cd644a5d53TransportProcessingResource
6Extra 1b656171c-217d-434d-9546-73686919fdf3TransportProcessingResource
7Cutter Tbbbd5cf8-14f5-4d23-9fec-96343ceb933fTransportProcessingResource
\n", + "
" + ], + "text/plain": [ + " VesselName VesselID \\\n", + "0 Carrier A ab02d4b2-9def-4ea9-9086-a53751eba353 \n", + "1 Carrier B b791503c-dd43-45ed-afcc-745e3950d7df \n", + "2 Carrier C eed2ecf1-dd0e-4138-9cc1-f2c9e833618a \n", + "3 Barge I 831e3250-03ff-4d19-9888-bbdbc5645b98 \n", + "4 Barge II 96ed91f0-3447-4419-b1fc-d8b067504ea0 \n", + "5 Barge III 43f69783-54e7-41c4-89fd-d3cd644a5d53 \n", + "6 Extra 1 b656171c-217d-434d-9546-73686919fdf3 \n", + "7 Cutter T bbbd5cf8-14f5-4d23-9fec-96343ceb933f \n", + "\n", + " VesselClass \n", + "0 TransportProcessingResource \n", + "1 TransportProcessingResource \n", + "2 TransportProcessingResource \n", + "3 TransportProcessingResource \n", + "4 TransportProcessingResource \n", + "5 TransportProcessingResource \n", + "6 TransportProcessingResource \n", + "7 TransportProcessingResource " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_concepts(vessels, 'Vessel', 'concepts_vessels.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "7e17551f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ConceptNameConceptIDConceptClass
0Trench1240ebb4-4e8a-43b7-bf59-ab7b680f0483Site
1Reclamation31e9b640-8323-4960-96b8-9e776194a2bbSite
2Carrier Aab02d4b2-9def-4ea9-9086-a53751eba353TransportProcessingResource
\n", + "
" + ], + "text/plain": [ + " ConceptName ConceptID \\\n", + "0 Trench 1240ebb4-4e8a-43b7-bf59-ab7b680f0483 \n", + "1 Reclamation 31e9b640-8323-4960-96b8-9e776194a2bb \n", + "2 Carrier A ab02d4b2-9def-4ea9-9086-a53751eba353 \n", + "\n", + " ConceptClass \n", + "0 Site \n", + "1 Site \n", + "2 TransportProcessingResource " + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "concepts = get_concepts({**sites,**vessels}, 'Concept', 'concepts.csv')\n", + "concepts.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "f2d89e84", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityIDActivityNameActivityClassConceptIDConceptNameConceptMode
045afce7c-267b-4e08-bc62-5fe865ea743aloading: loading Carrier AShiftAmountActivitybbbd5cf8-14f5-4d23-9fec-96343ceb933fCutter Tprocessor
1554ce578-5f17-453e-af3c-a227b6a28c77unloading: unloading Carrier AShiftAmountActivityab02d4b2-9def-4ea9-9086-a53751eba353Carrier Aprocessor
204d3f3f5-9263-420d-b73b-2fafd04ab53dloading: loading Carrier BShiftAmountActivitybbbd5cf8-14f5-4d23-9fec-96343ceb933fCutter Tprocessor
\n", + "
" + ], + "text/plain": [ + " ActivityID ActivityName \\\n", + "0 45afce7c-267b-4e08-bc62-5fe865ea743a loading: loading Carrier A \n", + "1 554ce578-5f17-453e-af3c-a227b6a28c77 unloading: unloading Carrier A \n", + "2 04d3f3f5-9263-420d-b73b-2fafd04ab53d loading: loading Carrier B \n", + "\n", + " ActivityClass ConceptID ConceptName \\\n", + "0 ShiftAmountActivity bbbd5cf8-14f5-4d23-9fec-96343ceb933f Cutter T \n", + "1 ShiftAmountActivity ab02d4b2-9def-4ea9-9086-a53751eba353 Carrier A \n", + "2 ShiftAmountActivity bbbd5cf8-14f5-4d23-9fec-96343ceb933f Cutter T \n", + "\n", + " ConceptMode \n", + "0 processor \n", + "1 processor \n", + "2 processor " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "activity_resources = get_activity_resources(activities, 'resources.csv')\n", + "activity_resources.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "51c8b4d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityIDActivityNameActivityClassParentIdParentNameParentLevelactivityProcessorIDMoverIDOriginIDDestinationIDProcessorNameMoverNameOriginNameDestinationName
02a078f4b-a106-4a25-a645-2fb0200d28f3while_sequential_activity_subcycle:while_seque...WhileActivityNone0<openclsim.model.while_activity.WhileActivity ...NoneNoneNoneNone
1b2e60167-429e-4cf3-8d22-ad580c047048while_sequential_activity_subcycle:while_seque...WhileActivityNone0<openclsim.model.while_activity.WhileActivity ...NoneNoneNoneNone
282884557-fc08-4dba-988b-d104fde98463while_sequential_activity_subcycle:while_seque...WhileActivityNone0<openclsim.model.while_activity.WhileActivity ...NoneNoneNoneNone
\n", + "
" + ], + "text/plain": [ + " ActivityID \\\n", + "0 2a078f4b-a106-4a25-a645-2fb0200d28f3 \n", + "1 b2e60167-429e-4cf3-8d22-ad580c047048 \n", + "2 82884557-fc08-4dba-988b-d104fde98463 \n", + "\n", + " ActivityName ActivityClass ParentId \\\n", + "0 while_sequential_activity_subcycle:while_seque... WhileActivity None \n", + "1 while_sequential_activity_subcycle:while_seque... WhileActivity None \n", + "2 while_sequential_activity_subcycle:while_seque... WhileActivity None \n", + "\n", + " ParentName ParentLevel activity \\\n", + "0 0 \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TimestampStarttripTimestampStopActivityIDTimestampDtActivityNameActivityClass
01970-01-0111970-01-01 04:24:452a078f4b-a106-4a25-a645-2fb0200d28f315885.0while_sequential_activity_subcycle:while_seque...WhileActivity
211970-01-0111970-01-01 03:05:5339692afe-a0b9-434e-84ba-bc6e68887b4911153.0while_sequential_activity_subcycle:while_seque...WhileActivity
221970-01-0121970-01-01 07:24:1339692afe-a0b9-434e-84ba-bc6e68887b4926653.0while_sequential_activity_subcycle:while_seque...WhileActivity
\n", + "

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 z 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

" + ], + "text/plain": [ + " TimestampStart trip TimestampStop \\\n", + "0 1970-01-01 1 1970-01-01 04:24:45 \n", + "21 1970-01-01 1 1970-01-01 03:05:53 \n", + "22 1970-01-01 2 1970-01-01 07:24:13 \n", + "\n", + " ActivityID TimestampDt \\\n", + "0 2a078f4b-a106-4a25-a645-2fb0200d28f3 15885.0 \n", + "21 39692afe-a0b9-434e-84ba-bc6e68887b49 11153.0 \n", + "22 39692afe-a0b9-434e-84ba-bc6e68887b49 26653.0 \n", + "\n", + " ActivityName ActivityClass \n", + "0 while_sequential_activity_subcycle:while_seque... WhileActivity \n", + "21 while_sequential_activity_subcycle:while_seque... WhileActivity \n", + "22 while_sequential_activity_subcycle:while_seque... WhileActivity " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "activities_log = get_activity_log(activities, 'activity_logs.csv')\n", + "activities_log.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "bc385376", + "metadata": {}, + "source": [ + "## Verification/sanity checks" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "a3e8f617", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'',\n", + " 'Barge I',\n", + " 'Barge II',\n", + " 'Barge III',\n", + " 'Carrier A',\n", + " 'Carrier B',\n", + " 'Carrier C',\n", + " 'Extra 1'}" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['MoverName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "acfbb1ef", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'',\n", + " 'Barge I',\n", + " 'Barge II',\n", + " 'Barge III',\n", + " 'Carrier A',\n", + " 'Carrier B',\n", + " 'Carrier C',\n", + " 'Cutter T',\n", + " 'Extra 1'}" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['ProcessorName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "b680fb2a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'',\n", + " 'Barge I',\n", + " 'Barge II',\n", + " 'Barge III',\n", + " 'Carrier A',\n", + " 'Carrier B',\n", + " 'Carrier C',\n", + " 'Extra 1',\n", + " 'Trench'}" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['OriginName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "1ce51171", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'',\n", + " 'Barge I',\n", + " 'Barge II',\n", + " 'Barge III',\n", + " 'Carrier A',\n", + " 'Carrier B',\n", + " 'Carrier C',\n", + " 'Extra 1',\n", + " 'Reclamation',\n", + " 'Trench'}" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['DestinationName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "49d35cd3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'MoveActivity', 'SequentialActivity', 'ShiftAmountActivity', 'WhileActivity'}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['ActivityClass'])" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "70998a10", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'',\n", + " 'Barge I',\n", + " 'Barge II',\n", + " 'Barge III',\n", + " 'Carrier A',\n", + " 'Carrier B',\n", + " 'Carrier C',\n", + " 'Extra 1',\n", + " 'Trench'}" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activities_flat['OriginName'])" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "3cc47034", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'destination', 'mover', 'origin', 'processor'}" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(activity_resources['ConceptMode'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36a8f92e", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 179ea454..2d5b789f 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -12,12 +12,6 @@ from .simpy_object import SimpyObject from .priority import HasPriorityResource from .priority import PriorityVessel -from .indicators import Port -from .access import HasDraught -from .access import HasActualWaterLevel -from .access import HasLowestAstronomicalTide -from .access import HasMaintainedBedLevel -from .access import HasNavigability from .access import HasDredging __all__ = [ diff --git a/src/openclsim/core/access.py b/src/openclsim/core/access.py index e5b7286b..c379df2a 100644 --- a/src/openclsim/core/access.py +++ b/src/openclsim/core/access.py @@ -1,87 +1,5 @@ -"""This mixin aims to formulate port accessibilty based on water, bottom, and ship-related factors - The main idea behind these class objects is to ensure that the available water depth is higher than the required water depth. - The required water depth is calculated by measuring the distance between maximum draught and actual water level. -""" from .simpy_object import SimpyObject - -# Ship-related factors -class HasDraught(SimpyObject): - def __init__(self, draught, *args, **kwargs): - super().__init__(*args, **kwargs) - self.draught = draught - self.UKC = 0.1 * draught # When the UKC policy is 10% at the port - - def get_draught(self): - return self.draught - - def get_UKC(self): - return self.UKC - - @property - def required_water_depth(self): - return self.draught + self.UKC - - -# Water level-related factors -class HasActualWaterLevel(SimpyObject): - def __init__(self, AWL, *args, **kwargs): - """TODO: Document all variables""" - super().__init__(*args, **kwargs) - self.AWL = AWL - - def get_AWL(self): - state = {} - if hasattr(super(), "get_AWL"): - state = super().get_AWL() - - state.update({"AWL": self.AWL.get_AWL()}) - return state - - -class HasLowestAstronomicalTide(SimpyObject): - def __init__(self, LAT, *args, **kwargs): - super().__init__(*args, **kwargs) - self.LAT = LAT - - def get_LAT(self): - state = {} - if hasattr(super(), "get_LAT"): - state = super().get_LAT() - - state.update({"LAT": self.LAT.get_LAT()}) - return state - - -# Bottom-related factors -class HasMaintainedBedLevel(SimpyObject): - def __init__(self, MBL, *args, **kwargs): - super().__init__(*args, **kwargs) - self.MBL = MBL - - def get_MBL(self): - state = {} - if hasattr(super(), "get_MBL"): - state = super().get_MBL() - - state.update({"MBL": self.MBL.get_MBL()}) - return state - - -# Determine the navigability of vessels -class HasNavigability(SimpyObject): - def __init__(self, AWL, LAT, MBL, *args, **kwargs): - super().__init__(*args, **kwargs) - self.AWL = AWL - self.LAT = LAT - self.MBL = MBL - - @property - def available_water_depth(self): - available_water_depth = self.AWL - self.MBL - return available_water_depth - - class HasDredging(SimpyObject): def __init__(self, ABL, DCL, DBL, SR=0, *args, **kwargs): """ From 589d7227cc7dcb56f416edf5bc2d50bd26ebea27 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Fri, 2 Feb 2024 09:59:47 +0100 Subject: [PATCH 085/100] add tidal window initial version --- .../33_Accessibility_Dredging_Tide.ipynb | 5230 +---------------- src/openclsim/plugins/__init__.py | 9 +- src/openclsim/plugins/access.py | 94 + 3 files changed, 256 insertions(+), 5077 deletions(-) diff --git a/notebooks/33_Accessibility_Dredging_Tide.ipynb b/notebooks/33_Accessibility_Dredging_Tide.ipynb index fd65f685..81130ee1 100644 --- a/notebooks/33_Accessibility_Dredging_Tide.ipynb +++ b/notebooks/33_Accessibility_Dredging_Tide.ipynb @@ -1,44 +1,32 @@ { "cells": [ { + "attachments": { + "image.png": { + "image/png": "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" + } + }, "cell_type": "markdown", "id": "3b8fbfc7", "metadata": {}, "source": [ "\n", - "### Maintenance dredging due to keeping the port accessible\n", + "### Maintenance dredging for accessibility purpose\n", "\n", - "![Alt text](image-1.png)\n", + "This notebook aims to run a single run of dredging for a Trailing Suction Hopper Dredger when dredging is needed to keep the water depth in a desired value. For this purpose, the following picture shows the concept of accessibility.\n", "\n", - "* This notebook aims to formulate the port accessibility in openclsim simulation when addressing the interaction between one dredging vessel and one seagoing vessel.\n", + "![image.png](attachment:image.png)\n", "\n", - "* The concept of accessibility is defined based on the picture above. When the available water depth is higher than the required water depth for the seagoing vessel, the vessel can sail through the port. Otherwise, the dredging vessel should start its job and keep the port accessible by dredging a certain amount of sediment.\n", - "\n", - "The following variables are used:\n", + "* When the actual water level is higher than the dredging criteria level due to sedimentation, dredging should be triggered and continued until the actual bed level reaches the dredging criteria level.\n", + "* Dredging criteria level depends on errors in surveys and uncertainties in dredging caused by different rates of sedimentation.\n", + "* The real-time data from the Port of Rotterdam are used to calculate the actual bed level.\n", "\n", + "The following variables are used to formulate the problem.\n", "```\n", "AWL: Actual (as in at this moment) Water Level (meters)\n", - "LAT: Lowest Astronomical Tide (meters)\n", - "MBL: Maintained Bed Level (meters)\n", - "T: Draught (meters)\n", - "```\n", - "Then the criteria for accessibility can be defined as follows.\n", - "\n", - "* required water depth = ```T``` + safety margin for under keel clearance\n", - "\n", - "* available water depth = ```AWL - MBL```\n", - "\n", - "Considerations\n", - "\n", - "* A dredging criteria level is defined to determine a level that when reaches the ```MBL```, the dredging operation is triggered. Dredging criteria level is considered as a safety margin to guarantee the nautical depth. When this safety margin is lower than the ```MBL```, no dredging is needed and the location is accessible. Otherwise, dredging is triggered.\n", - "\n", - "* Dredging criteria level depends on errors in surveys and uncertainties in dredging caused by different rates of sedimentation. \n", - "\n", - "* Dredging criteria level = ```MBL``` - errors in surveys - uncertainties in dredging (dredging tolerance)\n", - "\n", - "* To dredge navigation channels, ```LAT``` can be ignored because navigation channels are designed based on ```LAT``` and no vessel has tidal windows. When sailing through channels, vessels sail during the neap tide and not tidal restriction is applied.\n", - "\n", - "* For berth location, ```LAT``` is considered as one of the determining factors when the minimum water level is a bit lower than ```LAT```. In this case, vessels need to be at the port during the ebb tide. Dredging criteria level are also taken into account to determine how frequently the berth should be dredged." + "DCL: Dredge Criteria Level (DCL)\n", + "SR: Sedimentation Rate\n", + "```\n" ] }, { @@ -51,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 282, + "execution_count": 1, "id": "f22b1f5f", "metadata": {}, "outputs": [], @@ -91,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 283, + "execution_count": 2, "id": "0f3edd62", "metadata": {}, "outputs": [], @@ -111,12 +99,25 @@ }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 3, "id": "20b9605b", "metadata": {}, "outputs": [], "source": [ "# create a Site object based on desired mixin classes\n", + "DredgedSite = type(\n", + " \"DredgedSite\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " core.HasDredging,\n", + " ),\n", + " {},\n", + ")\n", + "\n", "Site = type(\n", " \"Site\",\n", " (\n", @@ -125,9 +126,6 @@ " core.Locatable,\n", " core.HasContainer,\n", " core.HasResource,\n", - " core.HasActualWaterLevel,\n", - " core.HasLowestAstronomicalTide,\n", - " core.HasMaintainedBedLevel,\n", " ),\n", " {},\n", ")\n", @@ -144,7 +142,6 @@ " core.Log,\n", " core.LoadingFunction,\n", " core.UnloadingFunction,\n", - " core.HasDraught, # adding the draught attibute for vessel objects\n", " # capture extra metadata to make sure we don't have leftover arguments\n", " opentnsim.core.ExtraMetadata,\n", " ),\n", @@ -170,222 +167,7 @@ }, { "cell_type": "code", - "execution_count": 285, - "id": "35b65868-4fb1-4d63-9e30-e5027a4e00cf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 285, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# define a tidal water level\n", - "\n", - "dates = pd.date_range(start=datetime.datetime(2023, 1, 1), end=datetime.datetime(2023, 2, 1), freq='H')\n", - "len(dates)\n", - "depth_df = pd.DataFrame({\"date\": dates})\n", - "ts = depth_df['date'].apply(lambda t: t.timestamp())\n", - "depth_df['ts'] = ts\n", - "depth_df['ts_h'] = depth_df['ts'] / 3600\n", - "\n", - "amplitude = 1.5\n", - "# TODO: What is this base level?\n", - "base_level = 1\n", - "# TODO: translate water level to minimum depth\n", - "minimum_depth = amplitude * np.sin(1/12 * depth_df['ts_h'] * np.pi) + base_level\n", - "\n", - "depth_df['Minimum depth'] = minimum_depth\n", - "\n", - "depth_df[:30].plot('date', 'Minimum depth')" - ] - }, - { - "cell_type": "code", - "execution_count": 286, - "id": "2c15ab83", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
datetsts_hMinimum depth
02023-01-01 00:00:001.672531e+09464592.01.000000
12023-01-01 01:00:001.672535e+09464593.01.388229
22023-01-01 02:00:001.672538e+09464594.01.750000
32023-01-01 03:00:001.672542e+09464595.02.060660
42023-01-01 04:00:001.672546e+09464596.02.299038
52023-01-01 05:00:001.672549e+09464597.02.448889
62023-01-01 06:00:001.672553e+09464598.02.500000
72023-01-01 07:00:001.672556e+09464599.02.448889
82023-01-01 08:00:001.672560e+09464600.02.299038
92023-01-01 09:00:001.672564e+09464601.02.060660
\n", - "
" - ], - "text/plain": [ - " date ts ts_h Minimum depth\n", - "0 2023-01-01 00:00:00 1.672531e+09 464592.0 1.000000\n", - "1 2023-01-01 01:00:00 1.672535e+09 464593.0 1.388229\n", - "2 2023-01-01 02:00:00 1.672538e+09 464594.0 1.750000\n", - "3 2023-01-01 03:00:00 1.672542e+09 464595.0 2.060660\n", - "4 2023-01-01 04:00:00 1.672546e+09 464596.0 2.299038\n", - "5 2023-01-01 05:00:00 1.672549e+09 464597.0 2.448889\n", - "6 2023-01-01 06:00:00 1.672553e+09 464598.0 2.500000\n", - "7 2023-01-01 07:00:00 1.672556e+09 464599.0 2.448889\n", - "8 2023-01-01 08:00:00 1.672560e+09 464600.0 2.299038\n", - "9 2023-01-01 09:00:00 1.672564e+09 464601.0 2.060660" - ] - }, - "execution_count": 286, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "depth_df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 287, - "id": "94ec8119-ee10-42bb-be3e-06340c3630c8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 287, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loading_crit = plugin.DepthCriterion(\n", - " name=\"loading_crit\",\n", - " condition=\"Minimum depth\",\n", - " minimum=1, # for now we assume that 1 m waterdepth is the minimum depth for economic accomodation of draught + ukc + margin\n", - " window_length=3600,\n", - ")\n", - "loading_crit\n", - "\n", - "\n", - "sailing_crit = plugin.DepthCriterion(\n", - " name=\"sailing_crit\",\n", - " condition=\"Minimum depth\",\n", - " minimum=1, # for now we assume that 1 m waterdepth is the minimum depth for economic accomodation of draught + ukc + margin\n", - " window_length=3600,\n", - ")\n", - "sailing_crit" - ] - }, - { - "cell_type": "code", - "execution_count": 288, + "execution_count": 4, "id": "62c2dca3", "metadata": {}, "outputs": [], @@ -398,9 +180,6 @@ " \"geometry\": location_offshore,\n", " \"capacity\": 100,\n", " \"level\": 0,\n", - " \"AWL\": -0.13,\n", - " \"LAT\": -0.92,\n", - " \"MBL\": -17,\n", "}\n", "offshore = Site(**data_offshore)\n", "\n", @@ -413,11 +192,17 @@ " \"capacity\": 100,\n", " \"level\": 80,\n", " \"nr_resources\": 1,\n", - " \"AWL\": -0.13,\n", - " \"LAT\": -0.92,\n", - " \"MBL\": -17,\n", + " # actual bed level is 0.5 above\n", + " \"ABL\": -18,\n", + " # dredging criterion level\n", + " \"DCL\": -17.5,\n", + " # dredge bed level (after dredging)\n", + " \"DBL\": -18.5,\n", + " # sedimentation rate of 1m per week, in m/s\n", + " \"SR\": 1 / (3600 * 24 * 7)\n", + " \n", "}\n", - "berth = Site(**data_berth)\n", + "berth = DredgedSite(**data_berth)\n", "\n", "# prepare input data for dump\n", "location_dump = shapely.geometry.Point(4.1795229742823, 52.11590591837503)\n", @@ -427,9 +212,6 @@ " \"geometry\": location_dump,\n", " \"capacity\": 100,\n", " \"level\": 0,\n", - " \"AWL\": -0.13,\n", - " \"LAT\": -0.92,\n", - " \"MBL\": -17,\n", "}\n", "dump = Site(**data_dump)" ] @@ -444,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": 289, + "execution_count": 5, "id": "7bfc8b04", "metadata": {}, "outputs": [], @@ -458,7 +240,6 @@ " \"loading_rate\": 1,\n", " \"unloading_rate\": 0.5,\n", " \"compute_v\": lambda x: 10 + 2 * x,\n", - " \"draught\": 10,\n", "}\n", "# instantiate vessel_01\n", "vessel01 = TransportProcessingResource(**data_vessel01)\n", @@ -475,7 +256,6 @@ " \"loading_rate\": 1,\n", " \"unloading_rate\": 0.5,\n", " \"compute_v\": lambda x: 15 + 2 * x,\n", - " \"draught\": 15,\n", "}\n", "# instantiate vessel_02\n", "vessel02 = TransportProcessingResource(**data_vessel02)\n", @@ -492,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 290, + "execution_count": 6, "id": "4d0d0350", "metadata": {}, "outputs": [], @@ -503,25 +283,17 @@ }, { "cell_type": "code", - "execution_count": 291, + "execution_count": 7, "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", "metadata": {}, "outputs": [], "source": [ "# Define custom activities with Depth Plugin\n", - "ShiftAmountWithDepthActivity = type(\n", - " \"ShiftAmountWithDepthActivity\",\n", - " (\n", - " plugin.HasDepthPluginActivity,\n", - " model.ShiftAmountActivity,\n", - " ),\n", - " {},\n", - ")\n", - "\n", - "MoveWithDepthActivity = type(\n", - " \"MoveWithDepthActivity\",\n", + "MoveWhenDredgingNeeded = type(\n", + " \"MoveWhenDredgingNeeded\",\n", " (\n", - " plugin.HasDepthPluginActivity,\n", + " plugin.HasDredgePluginActivity,\n", + " plugin.HasTidePluginActivity,\n", " model.MoveActivity,\n", " ),\n", " {},\n", @@ -530,27 +302,100 @@ }, { "cell_type": "code", - "execution_count": 292, + "execution_count": 8, + "id": "08868748-d718-479b-90c8-29c8c8e8eb39", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "t = 0\n", + "\n", + "def water_level(t, amplitude=1.5):\n", + " # t is in hours \n", + " tidal_phase = 0 \n", + " tidal_period = 12.42\n", + " water_level_at_t = amplitude * np.sin(2 * np.pi * t / tidal_period - tidal_phase)\n", + " return water_level_at_t\n", + " \n", + "\n", + "t_hours = my_env.now / 3600.0\n", + "actual_water_level = water_level(t_hours)\n", + "actual_water_level\n", + "\n", + "t = np.arange(0, 12, 0.1)\n", + "\n", + "t = 9 \n", + "plt.plot(t, water_level(t))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, "id": "4b621a99", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'dredge_plugin' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [9]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 10\u001b[0m tide_criteria \u001b[38;5;241m=\u001b[39m plugin\u001b[38;5;241m.\u001b[39mTideCriterion(\n\u001b[1;32m 11\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtide_crit\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 12\u001b[0m )\n\u001b[1;32m 14\u001b[0m \u001b[38;5;66;03m# Specify dredging subprocesses\u001b[39;00m\n\u001b[1;32m 15\u001b[0m dredging_subprocesses \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m---> 16\u001b[0m \u001b[43mMoveWhenDredgingNeeded\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 17\u001b[0m \u001b[43m \u001b[49m\u001b[43menv\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmy_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 18\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43msailing empty dredging vessel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 19\u001b[0m \u001b[43m \u001b[49m\u001b[43mregistry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mregistry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 20\u001b[0m \u001b[43m \u001b[49m\u001b[43mmover\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvessel01\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 21\u001b[0m \u001b[43m \u001b[49m\u001b[43mdestination\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mberth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 22\u001b[0m \u001b[43m \u001b[49m\u001b[43mdredge_criteria\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdredge_criteria\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 23\u001b[0m \u001b[43m \u001b[49m\u001b[43mtide_criteria\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtide_criteria\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 24\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m,\n\u001b[1;32m 25\u001b[0m model\u001b[38;5;241m.\u001b[39mShiftAmountActivity(\n\u001b[1;32m 26\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 27\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mloading dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 28\u001b[0m registry\u001b[38;5;241m=\u001b[39mregistry,\n\u001b[1;32m 29\u001b[0m processor\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 30\u001b[0m origin\u001b[38;5;241m=\u001b[39mberth,\n\u001b[1;32m 31\u001b[0m destination\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 32\u001b[0m amount\u001b[38;5;241m=\u001b[39mamount,\n\u001b[1;32m 33\u001b[0m duration\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m50\u001b[39m \u001b[38;5;241m*\u001b[39m amount,\n\u001b[1;32m 34\u001b[0m ),\n\u001b[1;32m 35\u001b[0m model\u001b[38;5;241m.\u001b[39mMoveActivity(\n\u001b[1;32m 36\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 37\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msailing full dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 38\u001b[0m registry\u001b[38;5;241m=\u001b[39mregistry,\n\u001b[1;32m 39\u001b[0m mover\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 40\u001b[0m destination\u001b[38;5;241m=\u001b[39mdump,\n\u001b[1;32m 41\u001b[0m ),\n\u001b[1;32m 42\u001b[0m model\u001b[38;5;241m.\u001b[39mShiftAmountActivity(\n\u001b[1;32m 43\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 44\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munloading dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 45\u001b[0m registry\u001b[38;5;241m=\u001b[39mregistry,\n\u001b[1;32m 46\u001b[0m processor\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 47\u001b[0m origin\u001b[38;5;241m=\u001b[39mvessel01,\n\u001b[1;32m 48\u001b[0m destination\u001b[38;5;241m=\u001b[39mdump,\n\u001b[1;32m 49\u001b[0m amount\u001b[38;5;241m=\u001b[39mamount,\n\u001b[1;32m 50\u001b[0m duration\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m20\u001b[39m \u001b[38;5;241m*\u001b[39m amount,\n\u001b[1;32m 51\u001b[0m ),\n\u001b[1;32m 52\u001b[0m ]\n\u001b[1;32m 54\u001b[0m \u001b[38;5;66;03m# Define activities of the dredging vessel\u001b[39;00m\n\u001b[1;32m 55\u001b[0m activities_dredging_vessel \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mWhileActivity(\n\u001b[1;32m 56\u001b[0m env\u001b[38;5;241m=\u001b[39mmy_env,\n\u001b[1;32m 57\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwhile sequential activity dredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 74\u001b[0m ],\n\u001b[1;32m 75\u001b[0m )\n", + "File \u001b[0;32m~/src/OpenCLSim/src/openclsim/plugins/access.py:168\u001b[0m, in \u001b[0;36mHasDredgePluginActivity.__init__\u001b[0;34m(self, dredge_criteria, *args, **kwargs)\u001b[0m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, dredge_criteria, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m--> 168\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 170\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdestination\u001b[39m\u001b[38;5;124m\"\u001b[39m), \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m should have a destination\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 171\u001b[0m destination \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdestination\n", + "File \u001b[0;32m~/src/OpenCLSim/src/openclsim/plugins/access.py:191\u001b[0m, in \u001b[0;36mHasTidePluginActivity.__init__\u001b[0;34m(self, tide_criteria, *args, **kwargs)\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m tide_criteria \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\n\u001b[1;32m 188\u001b[0m \u001b[38;5;28mself\u001b[39m, openclsim\u001b[38;5;241m.\u001b[39mmodel\u001b[38;5;241m.\u001b[39mPluginActivity\n\u001b[1;32m 189\u001b[0m ):\n\u001b[1;32m 190\u001b[0m tide_plugin \u001b[38;5;241m=\u001b[39m TidePluginActivity(tide_criteria\u001b[38;5;241m=\u001b[39mtide_criteria)\n\u001b[0;32m--> 191\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mregister_plugin(plugin\u001b[38;5;241m=\u001b[39m\u001b[43mdredge_plugin\u001b[49m, priority\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'dredge_plugin' is not defined" + ] + } + ], "source": [ "# Specify the amount of container and duration of activities\n", "amount = 10\n", "duration = 200\n", "\n", + "\n", + "dredge_criteria = plugin.DredgeCriterion(\n", + " name=\"dredge_crit\",\n", + ")\n", + "\n", + "tide_criteria = plugin.TideCriterion(\n", + " name=\"tide_crit\",\n", + ")\n", + "\n", "# Specify dredging subprocesses\n", "dredging_subprocesses = [\n", - " MoveWithDepthActivity(\n", + " MoveWhenDredgingNeeded(\n", " env=my_env,\n", " name=\"sailing empty dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=berth,\n", - " depth_criteria=sailing_crit,\n", - " depth_df=depth_df\n", + " dredge_criteria=dredge_criteria,\n", + " tide_criteria=tide_criteria,\n", " ),\n", - " ShiftAmountWithDepthActivity(\n", + " model.ShiftAmountActivity(\n", " env=my_env,\n", " name=\"loading dredging vessel\",\n", " registry=registry,\n", @@ -559,19 +404,15 @@ " destination=vessel01,\n", " amount=amount,\n", " duration=50 * amount,\n", - " depth_criteria=loading_crit,\n", - " depth_df=depth_df\n", " ),\n", - " MoveWithDepthActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing full dredging vessel\",\n", " registry=registry,\n", " mover=vessel01,\n", " destination=dump,\n", - " depth_criteria=sailing_crit,\n", - " depth_df=depth_df\n", " ),\n", - " ShiftAmountWithDepthActivity(\n", + " model.ShiftAmountActivity(\n", " env=my_env,\n", " name=\"unloading dredging vessel\",\n", " registry=registry,\n", @@ -580,8 +421,6 @@ " destination=dump,\n", " amount=amount,\n", " duration=20 * amount,\n", - " depth_criteria=loading_crit,\n", - " depth_df=depth_df\n", " ),\n", "]\n", "\n", @@ -611,7 +450,7 @@ }, { "cell_type": "code", - "execution_count": 293, + "execution_count": null, "id": "d272ff48", "metadata": {}, "outputs": [], @@ -622,16 +461,14 @@ " model.BasicActivity(\n", " env=my_env, name=\"interval time\", registry=registry, duration=200\n", " ),\n", - " MoveWithDepthActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing full seagoing vessel\",\n", " registry=registry,\n", " mover=vessel02,\n", " destination=berth,\n", - " depth_criteria=loading_crit,\n", - " depth_df=depth_df\n", " ),\n", - " ShiftAmountWithDepthActivity(\n", + " model.ShiftAmountActivity(\n", " env=my_env,\n", " name=\"unloading seagoing vessel\",\n", " registry=registry,\n", @@ -641,17 +478,13 @@ " amount=amount,\n", " duration=30 * amount,\n", " requested_resources=requested_resources,\n", - " depth_criteria=loading_crit,\n", - " depth_df=depth_df\n", " ),\n", - " MoveWithDepthActivity(\n", + " model.MoveActivity(\n", " env=my_env,\n", " name=\"sailing empty seagoing vessel\",\n", " registry=registry,\n", " mover=vessel02,\n", " destination=offshore,\n", - " depth_criteria=loading_crit,\n", - " depth_df=depth_df\n", " ),\n", "]\n", "\n", @@ -682,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 294, + "execution_count": null, "id": "a22e6a3f", "metadata": {}, "outputs": [], @@ -696,61 +529,26 @@ }, { "cell_type": "code", - "execution_count": 295, + "execution_count": null, "id": "67e9ea06", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mover dredging vessel destination berth\n", - "mover seagoing vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "mover seagoing vessel destination offshore\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", - "mover dredging vessel destination berth\n", - "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", - "mover dredging vessel destination dump\n", - "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n" - ] - } - ], + "outputs": [], "source": [ "my_env.run()" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "653367fa", + "metadata": {}, + "outputs": [], + "source": [ + "# the dredging log is now not in the ship but in the plugin....\n", + "dredging_cycle_log_df = pd.DataFrame(activities_dredging_vessel.sub_processes[0].sub_processes[0].logbook)\n", + "dredging_cycle_log_df" + ] + }, { "cell_type": "markdown", "id": "37887fe1", @@ -769,166 +567,10 @@ }, { "cell_type": "code", - "execution_count": 296, + "execution_count": null, "id": "e96e09e8", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStategeometrycontainer level
0sailing empty dredging vessel2023-01-01 01:00:00.000000STARTPOINT (4.1795229742823 52.11590591837503)0.0
1sailing empty dredging vessel2023-01-01 01:32:00.113019STOPPOINT (4.062705498083785 51.95909715255291)0.0
2loading dredging vessel2023-01-01 01:32:00.113019STARTPOINT (4.062705498083785 51.95909715255291)0.0
3loading dredging vessel2023-01-01 01:40:20.113019STOPPOINT (4.062705498083785 51.95909715255291)10.0
4sailing full dredging vessel2023-01-01 01:40:20.113019STARTPOINT (4.062705498083785 51.95909715255291)10.0
..................
67loading dredging vessel2023-01-01 11:03:01.770623STOPPOINT (4.062705498083785 51.95909715255291)5.0
68sailing full dredging vessel2023-01-01 11:03:01.770623STARTPOINT (4.062705498083785 51.95909715255291)5.0
69sailing full dredging vessel2023-01-01 11:32:07.327912STOPPOINT (4.1795229742823 52.11590591837503)5.0
70unloading dredging vessel2023-01-01 11:32:07.327912STARTPOINT (4.1795229742823 52.11590591837503)5.0
71unloading dredging vessel2023-01-01 11:35:27.327912STOPPOINT (4.1795229742823 52.11590591837503)0.0
\n", - "

72 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 sailing empty dredging vessel 2023-01-01 01:00:00.000000 START \n", - "1 sailing empty dredging vessel 2023-01-01 01:32:00.113019 STOP \n", - "2 loading dredging vessel 2023-01-01 01:32:00.113019 START \n", - "3 loading dredging vessel 2023-01-01 01:40:20.113019 STOP \n", - "4 sailing full dredging vessel 2023-01-01 01:40:20.113019 START \n", - ".. ... ... ... \n", - "67 loading dredging vessel 2023-01-01 11:03:01.770623 STOP \n", - "68 sailing full dredging vessel 2023-01-01 11:03:01.770623 START \n", - "69 sailing full dredging vessel 2023-01-01 11:32:07.327912 STOP \n", - "70 unloading dredging vessel 2023-01-01 11:32:07.327912 START \n", - "71 unloading dredging vessel 2023-01-01 11:35:27.327912 STOP \n", - "\n", - " geometry container level \n", - "0 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "1 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "2 POINT (4.062705498083785 51.95909715255291) 0.0 \n", - "3 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 10.0 \n", - ".. ... ... \n", - "67 POINT (4.062705498083785 51.95909715255291) 5.0 \n", - "68 POINT (4.062705498083785 51.95909715255291) 5.0 \n", - "69 POINT (4.1795229742823 52.11590591837503) 5.0 \n", - "70 POINT (4.1795229742823 52.11590591837503) 5.0 \n", - "71 POINT (4.1795229742823 52.11590591837503) 0.0 \n", - "\n", - "[72 rows x 5 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Inspect dredging vessel log\n", "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" @@ -936,4578 +578,14 @@ }, { "cell_type": "code", - "execution_count": 297, + "execution_count": null, "id": "f920e9e2", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStategeometrycontainer level
0sailing full seagoing vessel2023-01-01 01:00:00.000000STARTPOINT (3.637610458072877 52.10701582514347)5
1sailing full seagoing vessel2023-01-01 01:34:53.474628STOPPOINT (4.062705498083785 51.95909715255291)5
2unloading seagoing vessel2023-01-01 01:40:20.113019STARTPOINT (4.062705498083785 51.95909715255291)5
3unloading seagoing vessel2023-01-01 01:45:20.113019STOPPOINT (4.062705498083785 51.95909715255291)0
4sailing empty seagoing vessel2023-01-01 01:45:20.113019STARTPOINT (4.062705498083785 51.95909715255291)0
5sailing empty seagoing vessel2023-01-01 02:22:33.152622STOPPOINT (3.637610458072877 52.10701582514347)0
\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState \\\n", - "0 sailing full seagoing vessel 2023-01-01 01:00:00.000000 START \n", - "1 sailing full seagoing vessel 2023-01-01 01:34:53.474628 STOP \n", - "2 unloading seagoing vessel 2023-01-01 01:40:20.113019 START \n", - "3 unloading seagoing vessel 2023-01-01 01:45:20.113019 STOP \n", - "4 sailing empty seagoing vessel 2023-01-01 01:45:20.113019 START \n", - "5 sailing empty seagoing vessel 2023-01-01 02:22:33.152622 STOP \n", - "\n", - " geometry container level \n", - "0 POINT (3.637610458072877 52.10701582514347) 5 \n", - "1 POINT (4.062705498083785 51.95909715255291) 5 \n", - "2 POINT (4.062705498083785 51.95909715255291) 5 \n", - "3 POINT (4.062705498083785 51.95909715255291) 0 \n", - "4 POINT (4.062705498083785 51.95909715255291) 0 \n", - "5 POINT (3.637610458072877 52.10701582514347) 0 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Inspect seagoing vessel log\n", "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" ] - }, - { - "cell_type": "markdown", - "id": "3a8db3b7", - "metadata": {}, - "source": [ - "##### 5.2. Visualize gantt chart" - ] - }, - { - "cell_type": "code", - "execution_count": 298, - "id": "fba2bcc6", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(120,125,92)", - "width": 10 - }, - "mode": "lines", - "name": "loading dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623" - ], - "y": [ - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(156,161,128)", - "width": 10 - }, - "mode": "lines", - "name": "sailing empty dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T01:00:00", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623" - ], - "y": [ - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(192,197,164)", - "width": 10 - }, - "mode": "lines", - "name": "sailing full dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912" - ], - "y": [ - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(228,233,200)", - "width": 10 - }, - "mode": "lines", - "name": "unloading dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:35:27.327912", - "2023-01-01T11:35:27.327912", - "2023-01-01T11:35:27.327912" - ], - "y": [ - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null, - 0, - 0, - 0, - 0, - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(8,13,236)", - "width": 10 - }, - "mode": "lines", - "name": "sailing empty seagoing vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T02:22:33.152622", - "2023-01-01T02:22:33.152622", - "2023-01-01T02:22:33.152622" - ], - "y": [ - -1, - -1, - -1, - -1, - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(44,49,16)", - "width": 10 - }, - "mode": "lines", - "name": "sailing full seagoing vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T01:00:00", - "2023-01-01T01:34:53.474628", - "2023-01-01T01:34:53.474628", - "2023-01-01T01:34:53.474628" - ], - "y": [ - -1, - -1, - -1, - -1, - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(80,85,52)", - "width": 10 - }, - "mode": "lines", - "name": "unloading seagoing vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019" - ], - "y": [ - -1, - -1, - -1, - -1, - null - ] - }, - { - "name": "sailing_crit", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T11:35:27.327912" - ], - "y": [ - 1, - 1 - ] - }, - { - "name": "sailing_crit", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T02:22:33.152622" - ], - "y": [ - 1, - 1 - ] - }, - { - "name": "Depth", - "type": "scatter", - "x": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744 - ], - "y": [ - 0.9999999999830612, - 1.3882285676297725, - 1.7499999999905218, - 2.060660171781919, - 2.2990381056632687, - 2.448888739430272, - 2.5, - 2.448888739441031, - 2.299038105684053, - 2.0606601717804427, - 1.7500000000265206, - 1.3882285676699238, - 1.0000000000028009, - 0.6117714323776555, - 0.250000000016138, - -0.0606601717764812, - -0.2990381056594238, - -0.4488887394282819, - -0.5, - -0.4488887394430212, - -0.2990381056878977, - -0.060660171785880124, - 0.24999999996681987, - 0.6117714323226482, - 0.999999999989509, - 1.3882285676149164, - 1.7499999999772022, - 2.0606601717710435, - 2.299038105666493, - 2.4488887394262915, - 2.5, - 2.448888739439362, - 2.299038105680829, - 2.0606601717913176, - 1.7500000000209364, - 1.3882285676636956, - 0.9999999999963531, - 0.6117714323714274, - 0.250000000010554, - -0.06066017178104044, - -0.2990381056626479, - -0.4488887394299508, - -0.5, - -0.4488887394413523, - -0.2990381056846738, - -0.06066017178132088, - 0.24999999997240374, - 0.6117714323288763, - 0.9999999999959568, - 1.3882285676211445, - 1.7499999999827862, - 2.060660171775603, - 2.299038105658803, - 2.4488887394279604, - 2.5, - 2.4488887394433423, - 2.2990381056885187, - 2.0606601717867585, - 1.750000000034256, - 1.3882285676785515, - 1.0000000000117333, - 0.6117714323651993, - 0.25000000002387357, - -0.06066017177016514, - -0.29903810566587175, - -0.44888873943161967, - -0.5, - -0.44888873943968344, - -0.29903810568144995, - -0.06066017179219618, - 0.24999999997798783, - 0.6117714323351044, - 1.0000000000024045, - 1.3882285676273727, - 1.7499999999883702, - 2.060660171780162, - 2.2990381056620266, - 2.4488887394296293, - 2.5, - 2.4488887394416734, - 2.299038105685295, - 2.0606601717821995, - 1.7500000000286722, - 1.3882285676723236, - 1.0000000000052853, - 0.6117714323800554, - 0.2500000000182896, - -0.06066017177472438, - -0.2990381056581817, - -0.44888873942763885, - -0.5, - -0.44888873944366403, - -0.29903810568914, - -0.06066017178763694, - 0.24999999996466826, - 0.6117714323202484, - 0.9999999999870245, - 1.3882285676336008, - 1.7499999999750506, - 2.0606601717692867, - 2.2990381056652502, - 2.4488887394312977, - 2.5, - 2.448888739440005, - 2.299038105682071, - 2.06066017177764, - 1.750000000023088, - 1.3882285676660955, - 0.9999999999988376, - 0.6117714323738273, - 0.2500000000127056, - -0.060660171779283845, - -0.29903810566140554, - -0.44888873942930774, - -0.5, - -0.44888873944199537, - -0.29903810568591593, - -0.06066017178307748, - 0.24999999997025213, - 0.6117714323264765, - 0.9999999999934723, - 1.3882285676187447, - 1.7499999999806346, - 2.060660171773846, - 2.2990381056575604, - 2.4488887394273173, - 2.5, - 2.4488887394439853, - 2.2990381056897613, - 2.0606601717885153, - 1.750000000017504, - 1.3882285676809514, - 1.0000000000142177, - 0.6117714323675991, - 0.25000000000712164, - -0.060660171768408544, - -0.2990381056646294, - -0.4488887394309764, - -0.5, - -0.4488887394403265, - -0.2990381056826923, - -0.06066017177851846, - 0.24999999997583622, - 0.6117714323327047, - 0.9999999999999202, - 1.388228567624973, - 1.7499999999862186, - 2.060660171778405, - 2.2990381056607845, - 2.448888739428986, - 2.5, - 2.4488887394423164, - 2.299038105686537, - 2.0606601717839563, - 1.7500000000308238, - 1.3882285676747235, - 1.0000000000077698, - 0.6117714323824551, - 0.2500000000204412, - -0.060660171772967786, - -0.29903810565693956, - -0.4488887394269958, - -0.5, - -0.4488887394386576, - -0.29903810569038214, - -0.06066017178939376, - 0.2499999999814202, - 0.6117714323178487, - 0.9999999999845401, - 1.388228567631201, - 1.7499999999918026, - 2.06066017176753, - 2.2990381056640086, - 2.448888739430655, - 2.5, - 2.448888739440648, - 2.299038105683313, - 2.0606601717793964, - 1.7500000000252396, - 1.3882285676684951, - 1.000000000001322, - 0.6117714323762271, - 0.2500000000148572, - -0.06066017177752703, - -0.2990381056601634, - -0.4488887394286647, - -0.5, - -0.4488887394426382, - -0.2990381056871583, - -0.060660171784834294, - 0.24999999996810063, - 0.6117714323240768, - 0.9999999999909879, - 1.3882285676163448, - 1.749999999978483, - 2.0606601717720894, - 2.2990381056563183, - 2.4488887394266743, - 2.5, - 2.448888739438979, - 2.299038105691003, - 2.060660171790272, - 1.7500000000196556, - 1.3882285676622672, - 1.0000000000167022, - 0.611771432369999, - 0.25000000000927325, - -0.06066017178208627, - -0.2990381056633873, - -0.44888873943033336, - -0.5, - -0.4488887394409695, - -0.2990381056839344, - -0.060660171780275274, - 0.2499999999736846, - 0.6117714323303048, - 0.9999999999974357, - 1.3882285676225732, - 1.749999999984067, - 2.0606601717766484, - 2.2990381056595424, - 2.448888739428343, - 2.5, - 2.44888873944296, - 2.2990381056877798, - 2.0606601717857127, - 1.7500000000329752, - 1.388228567677123, - 1.0000000000102542, - 0.6117714323848549, - 0.2500000000225928, - -0.06066017177121097, - -0.29903810566661115, - -0.44888873942635277, - -0.5, - -0.44888873943930063, - -0.29903810568071054, - -0.060660171791150574, - 0.24999999997926858, - 0.611771432336533, - 0.9999999999820557, - 1.388228567628801, - 1.749999999989651, - 2.060660171781208, - 2.299038105662766, - 2.448888739430012, - 2.5, - 2.448888739441291, - 2.2990381056845557, - 2.0606601717811532, - 1.7500000000273912, - 1.388228567670895, - 1.0000000000038065, - 0.6117714323786267, - 0.25000000001700884, - -0.06066017177577021, - -0.2990381056589211, - -0.44888873942802165, - -0.5, - -0.4488887394432812, - -0.2990381056884006, - -0.06066017178659111, - 0.24999999996594902, - 0.611771432321677, - 0.9999999999885034, - 1.3882285676350292, - 1.7499999999763314, - 2.0606601717703326, - 2.29903810566599, - 2.4488887394260312, - 2.5, - 2.448888739439622, - 2.2990381056813316, - 2.060660171792029, - 1.7500000000218072, - 1.3882285676646668, - 0.9999999999973587, - 0.6117714323723987, - 0.25000000001142486, - -0.060660171780329675, - -0.29903810566214495, - -0.44888873942969054, - -0.5, - -0.44888873944161234, - -0.2990381056851765, - -0.06066017178203187, - 0.249999999971533, - 0.6117714323279051, - 0.9999999999949513, - 1.3882285676201733, - 1.7499999999819154, - 2.0606601717748916, - 2.2990381056583002, - 2.4488887394277, - 2.5, - 2.4488887394436025, - 2.2990381056890214, - 2.0606601717874695, - 1.7500000000351268, - 1.388228567679523, - 1.0000000000127387, - 0.6117714323661706, - 0.25000000002474443, - -0.06066017176945415, - -0.2990381056653688, - -0.4488887394313592, - -0.5, - -0.4488887394399437, - -0.29903810568195266, - -0.06066017177747263, - 0.24999999997711697, - 0.6117714323341331, - 1.000000000001399, - 1.3882285676264015, - 1.7499999999874993, - 2.060660171779451, - 2.299038105661524, - 2.4488887394293686, - 2.5, - 2.448888739441934, - 2.299038105685798, - 2.06066017178291, - 1.7500000000295428, - 1.3882285676732948, - 1.000000000006291, - 0.6117714323810266, - 0.25000000001916045, - -0.060660171774013616, - -0.29903810565767897, - -0.4488887394273786, - -0.5, - -0.4488887394439245, - -0.29903810568964273, - -0.06066017178834793, - 0.24999999998270084, - 0.6117714323192772, - 0.999999999986019, - 1.3882285676326296, - 1.7499999999930833, - 2.0606601717685757, - 2.2990381056647475, - 2.4488887394310375, - 2.5, - 2.448888739440265, - 2.2990381056825737, - 2.060660171778351, - 1.7500000000239588, - 1.3882285676670667, - 0.9999999999998431, - 0.6117714323747985, - 0.2500000000135765, - -0.06066017177857286, - -0.29903810566090283, - -0.4488887394290475, - -0.5, - -0.4488887394422556, - -0.29903810568641864, - -0.060660171783788686, - 0.24999999996938138, - 0.6117714323255052, - 0.9999999999924668, - 1.3882285676177735, - 1.7499999999797637, - 2.0606601717731348, - 2.2990381056570577, - 2.448888739427057, - 2.5, - 2.4488887394385963, - 2.299038105690264, - 2.0606601717892263, - 1.750000000018375, - 1.3882285676819226, - 1.0000000000152232, - 0.6117714323685705, - 0.2500000000079925, - -0.060660171767697335, - -0.2990381056641267, - -0.4488887394307164, - -0.5, - -0.4488887394405867, - -0.299038105683195, - -0.060660171779229444, - 0.24999999997496536, - 0.6117714323317334, - 0.9999999999989146, - 1.3882285676240016, - 1.7499999999853477, - 2.0606601717776947, - 2.2990381056602818, - 2.448888739428726, - 2.5, - 2.4488887394425767, - 2.29903810568704, - 2.060660171784667, - 1.7500000000316944, - 1.3882285676756947, - 1.0000000000087754, - 0.6117714323834264, - 0.25000000002131206, - -0.0606601717722568, - -0.29903810565643685, - -0.4488887394267356, - -0.5, - -0.4488887394389178, - -0.29903810569088507, - -0.060660171790104744, - 0.24999999998054923, - 0.6117714323379615, - 0.9999999999835345, - 1.3882285676302297, - 1.7499999999909317, - 2.0606601717822537, - 2.299038105663506, - 2.4488887394303944, - 2.5, - 2.4488887394409082, - 2.299038105683816, - 2.060660171780108, - 1.7500000000261104, - 1.3882285676694663, - 1.0000000000023277, - 0.6117714323771983, - 0.2500000000157281, - -0.06066017177681582, - -0.2990381056596607, - -0.44888873942840446, - -0.5, - -0.44888873944289864, - -0.2990381056876612, - -0.0606601717855455, - 0.24999999996722977, - 0.6117714323231055, - 0.9999999999899823, - 1.3882285676153736, - 1.7499999999776121, - 2.0606601717713784, - 2.2990381056667295, - 2.448888739426414, - 2.5, - 2.4488887394392393, - 2.299038105680592, - 2.060660171790983, - 1.7500000000205265, - 1.3882285676632384, - 1.0000000000177076, - 0.6117714323709702, - 0.2500000000101441, - -0.06066017178137528, - -0.2990381056628846, - -0.4488887394300731, - -0.5, - -0.44888873944122976, - -0.2990381056844371, - -0.06066017178098604, - 0.24999999997281375, - 0.6117714323293335, - 0.9999999999964302, - 1.3882285676216017, - 1.749999999983196, - 2.060660171775938, - 2.299038105659039, - 2.448888739428083, - 2.5, - 2.4488887394432197, - 2.2990381056882825, - 2.0606601717864237, - 1.750000000033846, - 1.3882285676780945, - 1.0000000000112599, - 0.6117714323647421, - 0.2500000000234637, - -0.06066017177049998, - -0.2990381056661082, - -0.44888873942609253, - -0.5, - -0.44888873943956087, - -0.29903810568121325, - -0.06066017179186156, - 0.24999999997839772, - 0.6117714323355616, - 1.000000000002878, - 1.3882285676278299, - 1.74999999998878, - 2.060660171780497, - 2.2990381056622633, - 2.448888739429752, - 2.5, - 2.4488887394415513, - 2.2990381056850584, - 2.0606601717818647, - 1.750000000028262, - 1.3882285676718662, - 1.0000000000048122, - 0.6117714323795981, - 0.2500000000178797, - -0.060660171775059224, - -0.2990381056584184, - -0.4488887394277614, - -0.5, - -0.44888873944354146, - -0.2990381056889033, - -0.0606601717873021, - 0.24999999996507827, - 0.6117714323207057, - 0.9999999999874979, - 1.388228567634058, - 1.7499999999754605, - 2.0606601717696216, - 2.2990381056654874, - 2.4488887394314203, - 2.5, - 2.4488887394398824, - 2.2990381056818343, - 2.060660171777305, - 1.750000000022678, - 1.3882285676656383, - 0.9999999999983642, - 0.6117714323733701, - 0.2500000000122957, - -0.060660171779618466, - -0.29903810566164224, - -0.4488887394294301, - -0.5, - -0.4488887394418728, - -0.29903810568567923, - -0.060660171782742855, - 0.24999999997066213, - 0.6117714323269339, - 0.9999999999939457, - 1.388228567619202, - 1.7499999999810445, - 2.060660171774181, - 2.2990381056577975, - 2.44888873942744, - 2.5, - 2.448888739443863, - 2.299038105689524, - 2.0606601717881805, - 1.750000000017094, - 1.3882285676804942, - 1.0000000000137443, - 0.6117714323671419, - 0.25000000000671174, - -0.060660171768743165, - -0.2990381056648661, - -0.44888873943109897, - -0.5, - -0.4488887394402039, - -0.29903810568245537, - -0.060660171778183614, - 0.2499999999762461, - 0.6117714323331619, - 1.0000000000003935, - 1.38822856762543, - 1.7499999999866285, - 2.06066017177874, - 2.299038105661021, - 2.448888739429109, - 2.5, - 2.4488887394421943, - 2.2990381056863005, - 2.0606601717836215, - 1.7500000000304137, - 1.388228567674266, - 1.0000000000072966, - 0.6117714323819978, - 0.2500000000200312, - -0.06066017177330241, - -0.29903810565717626, - -0.4488887394271184, - -0.5, - -0.4488887394441845, - -0.29903810569014544, - -0.060660171789058914, - 0.2499999999818301, - 0.6117714323183059, - 0.9999999999850134, - 1.3882285676316584, - 1.7499999999922125, - 2.0606601717678648, - 2.299038105664245, - 2.4488887394307772, - 2.5, - 2.4488887394405254, - 2.299038105683077, - 2.060660171779062, - 1.7500000000248297, - 1.388228567668038, - 1.0000000000008487, - 0.6117714323757697, - 0.25000000001444733, - -0.06066017177786165, - -0.2990381056604001, - -0.44888873942878726, - -0.5, - -0.4488887394425156, - -0.2990381056869218, - -0.06066017178449967, - 0.24999999996851052, - 0.611771432324534, - 0.9999999999914613, - 1.3882285676168022, - 1.7499999999788929, - 2.060660171772424, - 2.299038105656555, - 2.448888739426797, - 2.5, - 2.4488887394388565, - 2.2990381056907667, - 2.0606601717899373, - 1.7500000000192457, - 1.3882285676618098, - 1.0000000000162288, - 0.6117714323695417, - 0.25000000000886335, - -0.06066017178242111, - -0.299038105663624, - -0.44888873943045593, - -0.5, - -0.44888873944084695, - -0.2990381056836977, - -0.06066017177994043, - 0.2499999999740945, - 0.6117714323307621, - 0.9999999999979091, - 1.3882285676230302, - 1.7499999999844769, - 2.0606601717769832, - 2.299038105659779, - 2.4488887394284653, - 2.5, - 2.4488887394428374, - 2.2990381056875426, - 2.0606601717853783, - 1.7500000000325653, - 1.388228567676666, - 1.000000000009781, - 0.6117714323843977, - 0.2500000000221828, - -0.06066017177154559, - -0.29903810566684785, - -0.44888873942647534, - -0.5, - -0.44888873943917806, - -0.2990381056913878, - -0.06066017179081573, - 0.24999999997967848, - 0.6117714323369902, - 0.999999999982529, - 1.3882285676292585, - 1.7499999999900608, - 2.0606601717815427, - 2.2990381056630027, - 2.448888739430134, - 2.5, - 2.4488887394411685, - 2.2990381056843185, - 2.060660171780819, - 1.7500000000269813, - 1.3882285676704378, - 1.0000000000033331, - 0.6117714323781696, - 0.25000000001659894, - -0.060660171776105054, - -0.2990381056591578, - -0.4488887394281442, - -0.5, - -0.4488887394431589, - -0.2990381056881639, - -0.06066017178625627, - 0.2499999999663589, - 0.6117714323221343, - 0.9999999999889768, - 1.3882285676144024, - 1.7499999999767413, - 2.0606601717706674, - 2.299038105666227, - 2.448888739426154, - 2.5, - 2.4488887394394996, - 2.299038105681095, - 2.060660171791694, - 1.7500000000213973, - 1.3882285676642097, - 0.9999999999968854, - 0.6117714323719414, - 0.25000000001101497, - -0.060660171780664296, - -0.29903810566238165, - -0.4488887394298131, - -0.5, - -0.44888873944149, - -0.2990381056849398, - -0.06066017178169725, - 0.2499999999719429, - 0.6117714323283623, - 0.9999999999954247, - 1.3882285676206305, - 1.7499999999823252, - 2.0606601717752264, - 2.2990381056585365, - 2.4488887394278227, - 2.5, - 2.44888873944348, - 2.299038105688785, - 2.060660171787135, - 1.750000000034717, - 1.3882285676790658, - 1.0000000000122653, - 0.6117714323657134, - 0.2500000000243344, - -0.060660171769788995, - -0.2990381056656055, - -0.4488887394314818, - -0.5, - -0.4488887394398211, - -0.29903810568171596, - -0.06066017179257255, - 0.24999999997752687, - 0.6117714323345904, - 1.0000000000018725, - 1.3882285676268586, - 1.7499999999879092, - 2.060660171779786, - 2.2990381056617606, - 2.448888739429491, - 2.5, - 2.4488887394418115, - 2.299038105685561, - 2.060660171782575, - 1.750000000029133, - 1.3882285676728376, - 1.0000000000058176, - 0.6117714323805693, - 0.25000000001875056, - -0.06066017177434824, - -0.29903810565791566, - -0.4488887394275012, - -0.5, - -0.4488887394438019, - -0.29903810568940603, - -0.060660171788013084, - 0.24999999998311084, - 0.6117714323197344, - 0.9999999999864924 - ] - }, - { - "name": "loading_crit", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T11:35:27.327912" - ], - "y": [ - 1, - 1 - ] - }, - { - "name": "loading_crit", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T02:22:33.152622" - ], - "y": [ - 1, - 1 - ] - } - ], - "layout": { - "hovermode": "closest", - "legend": { - "orientation": "h", - "x": 0, - "y": -0.2 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "GANTT Chart" - }, - "xaxis": { - "range": [ - "2023-01-01T01:00:00", - "2023-01-01T11:35:27.327912" - ], - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Time" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Activities" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "res = plot.get_gantt_chart([vessel01, vessel02], y_scale=\"numbers\", static=True, id_map=[activities_dredging_vessel, activities_seagoing_vessel])\n", - "data = res['data']\n", - "layout = res['layout']\n", - "\n", - "data.append({\n", - " \"name\": \"sailing_crit\",\n", - " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", - "})\n", - "data.append({\n", - " \"name\": \"sailing_crit\",\n", - " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[sailing_crit.minimum,sailing_crit.minimum],\n", - "})\n", - "\n", - "\n", - "data.append({\n", - " \"name\": \"Depth\",\n", - " \"x\":depth_df.index,\n", - " \"y\":depth_df[sailing_crit.condition],\n", - "})\n", - "\n", - "\n", - "data.append({\n", - " \"name\": \"loading_crit\",\n", - " \"x\":[vessel01.log[\"Timestamp\"][0].isoformat(), vessel01.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", - "})\n", - "data.append({\n", - " \"name\": \"loading_crit\",\n", - " \"x\":[vessel02.log[\"Timestamp\"][0].isoformat(), vessel02.log[\"Timestamp\"][-1].isoformat()],\n", - " \"y\":[loading_crit.minimum,loading_crit.minimum],\n", - "})\n", - "\n", - "go.Figure(data=data, layout=layout)" - ] - }, - { - "cell_type": "code", - "execution_count": 299, - "id": "29d1f881", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(64,194,136)", - "width": 10 - }, - "mode": "lines", - "name": "loading dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(100,230,172)", - "width": 10 - }, - "mode": "lines", - "name": "sailing empty dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T01:00:00", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T01:32:00.113019", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T02:42:20.320219", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T03:52:40.527420", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:03:00.734620", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:13:20.941821", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T07:23:41.149021", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T08:34:01.356222", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T09:44:21.563422", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623", - "2023-01-01T10:54:41.770623" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(136,10,208)", - "width": 10 - }, - "mode": "lines", - "name": "sailing full dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:50:40.320219", - "2023-01-01T02:50:40.320219", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:01:00.527420", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:11:20.734620", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:21:40.941821", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:32:01.149021", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T08:42:21.356222", - "2023-01-01T08:42:21.356222", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:52:41.563422", - "2023-01-01T09:52:41.563422", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:03:01.770623", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(172,46,244)", - "width": 10 - }, - "mode": "lines", - "name": "unloading dredging vessel", - "type": "scatter", - "x": [ - "2023-01-01T02:07:00.207201", - "2023-01-01T02:07:00.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T02:10:20.207201", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:17:20.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T03:20:40.414401", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:27:40.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T04:31:00.621602", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:38:00.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T05:41:20.828802", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:48:21.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T06:51:41.036003", - "2023-01-01T07:58:41.243203", - "2023-01-01T07:58:41.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T08:02:01.243203", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:09:01.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T09:12:21.450404", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:19:21.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T10:22:41.657604", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:32:07.327912", - "2023-01-01T11:35:27.327912", - "2023-01-01T11:35:27.327912", - "2023-01-01T11:35:27.327912" - ], - "y": [ - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null, - "dredging vessel", - "dredging vessel", - "dredging vessel", - "dredging vessel", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(208,82,24)", - "width": 10 - }, - "mode": "lines", - "name": "sailing empty seagoing vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T02:22:33.152622", - "2023-01-01T02:22:33.152622", - "2023-01-01T02:22:33.152622" - ], - "y": [ - "seagoing vessel", - "seagoing vessel", - "seagoing vessel", - "seagoing vessel", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(244,118,60)", - "width": 10 - }, - "mode": "lines", - "name": "sailing full seagoing vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:00:00", - "2023-01-01T01:00:00", - "2023-01-01T01:34:53.474628", - "2023-01-01T01:34:53.474628", - "2023-01-01T01:34:53.474628" - ], - "y": [ - "seagoing vessel", - "seagoing vessel", - "seagoing vessel", - "seagoing vessel", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(24,154,96)", - "width": 10 - }, - "mode": "lines", - "name": "unloading seagoing vessel", - "type": "scatter", - "x": [ - "2023-01-01T01:40:20.113019", - "2023-01-01T01:40:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019", - "2023-01-01T01:45:20.113019" - ], - "y": [ - "seagoing vessel", - "seagoing vessel", - "seagoing vessel", - "seagoing vessel", - null - ] - } - ], - "layout": { - "hovermode": "closest", - "legend": { - "orientation": "h", - "x": 0, - "y": -0.2 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "GANTT Chart" - }, - "xaxis": { - "range": [ - "2023-01-01T01:00:00", - "2023-01-01T11:35:27.327912" - ], - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Time" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Activities" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot.get_gantt_chart(\n", - " [vessel01, vessel02],\n", - " id_map=[activities_dredging_vessel, activities_seagoing_vessel],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "df4b670f", - "metadata": {}, - "source": [ - "##### 5.3. Visualize container volume developments" - ] - }, - { - "cell_type": "code", - "execution_count": 300, - "id": "c0d5b563", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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h1hdERwssgMYA6ABQJLUHAhq7B3/jvv3Xf+DM5WR0vOX2jfddJMWLVqkv/71rxo8eLC+973vafny5QeFJT/96U91xx136M4775Qkbd68WWeddZbuvvtuPfXUU9qzZ4/mz5+v+fPn6+mnn5YkXXbZZdq5c6feeustJScn67rrrtPu3bsj9xkMBnX++edr6NChWrx4serr6/Xtb3+7R3Xfeuutuv/++zVo0CBde+21+vrXv653331XkvTcc8/pnnvu0SOPPKJZs2bpxRdf1P33368RI0Yc8r68Xq8uvvhiPf/88/rf//3fyMefe+45zZo1S8OGDZMkffnLX1Z6erpeeeUV5ebm6le/+pU++9nPauPGjcrPz9ecOXM0efJkPfroo/L5fFq5cqWSk5MlSfPmzVNbW5vefvttZWZmav369crKypIUDpZOP/10XXnllXrggQfU3Nys7373u7rwwgv15ptv9uh42AEBEAAAsZKSKRUdJ+1aFV4GlvtFqyuCg9EBBAD209DQoCeffFK/+93v9NnPflaS9Oyzz6q0tPSg255++undwpkrr7xSc+bMiQwmHjlypH7xi1/o1FNP1aOPPqrt27frlVde0ZIlSzRtWnhZ+pNPPqljjz02ch+vv/66Nm/erIULF6qoqEiSdM899+iMM844Yu333HOPTj31VEnSzTffrHPOOUctLS1KS0vTL3/5S11xxRW6/PLLJUl33HGHXnvtNTU0NBz2/ubMmaP7779f27dv19ChQxUKhfTiiy/qtttukxTudlqyZIl2796t1NRUSeFQ7OWXX9Yf//hHXX311dq+fbtuuukmjRkzJnJMTNu3b9cFF1yg8ePHS5KOOuqoyOceeughTZ48WT/60Y8iH3vqqafk9/u1ceNGjRo16ojHww4IgAAAiKXS6eEAqHyJNI4ACLFDBxAAdJee7NP6H5xpyfftqc2bN6utrU0zZsyIfCw/P1+jR48+6LZTp07t9vdVq1Zp9erV3ZZ1GYahUCikrVu3auPGjUpKStKUKVMinx8zZozy8vIif9+wYYP8fn8k/JGk6dOn96j2CRMmRK4XFxdLCi85Gzp0qDZs2KBvfOMb3W4/ffr0T+2mmTRpko499lg9//zzuvnmm7Vo0SLt3r1bX/7ylyP/3oaGBhUUdP8919zcrM2bN0uSFixYoCuvvFK//e1vNXv2bH35y1/W0UcfLUm67rrr9L//+7967bXXNHv2bF1wwQWRf8OqVav01ltvRTqCutq8eTMBEAAA6AH/DGnpr8MBEBBDdAABQHcej6dXS7ESXWZmZre/NzQ06JprrtF111130G2HDh2qjRs3xrQec2mVFD7WUniWT3/MmTMnEgA9//zzOuussyKBT0NDg4qLi7Vw4cKDvs4Mtb7//e/rkksu0T//+U+98soruvPOO/Xiiy/qi1/8oq688kqdeeaZ+uc//6nXXntN9957r+6//35985vfVENDg84991zdd999B923GW45AUOgAQCIJX/HTmC7VkmBFmtrgaN13QUMAGAPRx99tJKTk7V48eLIx/bv39+j8Ob444/X+vXrdcwxxxz0JyUlRWPGjFF7e7vKysoiX7NhwwbV1NRE/j569GiVl5erqqoq8rGlS/u/ecXo0aMPup+e3O8ll1yitWvXqqysTH/84x81Z86cyOeOP/54VVZWKikp6aB/78CBAyO3GzVqlL71rW/ptdde05e+9KXIPCQpvKX9tddeqz//+c/69re/rV//+teR+163bp2GDx9+0H0fGLzZGQEQAACxlDdMyhwshQLSrpVWVwMHowMIAOwnKytLV1xxhW666Sa9+eabWrt2rS677DJ5vUd+qf7d735X7733nubPn6+VK1dq06ZN+utf/6r58+dLCocwZ511lq655hotXrxYZWVluvLKK5Wenh65jzPOOENHH320Lr30Uq1evVrvvvtuZOaO2dXTF9/85jf15JNP6tlnn9WmTZt09913a/Xq1Ue8z+HDh+vEE0/UFVdcoWAwqP/5n/+JfG727NmaOXOmzj//fL322mvatm2b3nvvPd16661atmyZmpubNX/+fC1cuFCffPKJ3n33XS1dujQy8+iGG27Qv//9b23dulXLly/XW2+9FfncvHnzVF1drYsvvlhLly7V5s2b9e9//1uXX365gsFgn49DoiEAAgAgljweyd+xlp5lYIih6pZqScwAAgC7+clPfqKTTz5Z5557rmbPnq2TTjqp29yew5kwYYIWLVqkjRs36uSTT9bkyZN1xx13qKSkJHKbp59+WiUlJTr11FP1pS99SVdffbUGDx4c+bzP59PLL7+shoYGTZs2TVdeeaVuvfVWSVJaWlqf/01z5szRLbfcohtvvFHHH3+8tm7dqssuu6xH9zln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rLS0NPn9fv34xz/u0X3Hi9OOeUtLiy677DKNHz9eSUlJOv/883t0v/HktGO+cOFCnXfeeSouLlZmZqYmTZqk5557rkf33ZUrAqDf//73WrBgge68804tX75cEydO1Jlnnqndu3dHbtPU1KSzzjpL3/ve93p8v8FgUOecc47a2tr03nvv6dlnn9UzzzyjO+64I3Kb1tZWDRo0SLfddpsmTpxo6f3GkxOP+dtvv60zzjhD//rXv1RWVqbPfOYzOvfcc7VixYoe1x9LTjzmmZmZmj9/vt5++219+OGHuu2223Tbbbfp8ccf73H9seTEY26qqanR3Llz9dnPfrbHdceDk4/5hg0btGvXrsifwYMH97j+WHLqMb/wwgv1xhtv6Mknn9SGDRv0wgsvaPTo0T2uP5aceMx//vOfd/v/XV5ervz8fH35y1/ucf2x5sTj/u6772ru3Lm64oortG7dOr300ktasmSJrrrqqh7XH0tOPOaPPvqobrnlFn3/+9/XunXrdNddd2nevHn6+9//3uP6Y8lux9z09a9/XRdddNEhP1dXV6fPfe5zGjZsmMrKyvSTn/xE3//+9zlfVOyOeTAYVHp6uq677jrNnj27V/cbD0485u+9954mTJigP/3pT1q9erUuv/xyzZ07V//4xz969T1kuMD06dONefPmRf4eDAaNkpIS49577z3otm+99ZYhydi/f/8R7/df//qX4fV6jcrKysjHHn30USMnJ8dobW096Pannnqqcf3111t2v/Hk9GNuGjt2rHHXXXcd8f7jwS3H/Itf/KLx1a9+9Yj3Hw9OPuYXXXSRcdtttxl33nmnMXHixCPed7w48Zj3pk4rOPGYv/LKK0Zubq6xb9++I96fFZx4zA/0l7/8xfB4PMa2bduOeP/x4sTj/pOf/MQ46qijun3dL37xC2PIkCFHvP94cOIxnzlzpnHjjTd2+7oFCxYYs2bNOuL9x4PdjnlXhzsneeSRR4wBAwZ0+z7f/e53jdGjR/fq/mPFice8q0svvdQ477zzenW/seb0Y276/Oc/b1x++eW9un/HdwC1tbWprKysWzLp9Xo1e/Zsvf/++/267/fff1/jx49XYWFh5GNnnnmm6urqtG7duoS733hxyzEPhUKqr69Xfn5+n79vtLjlmK9YsULvvfeeTj311D5/32hx8jF/+umntWXLFt155519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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plot.get_step_chart([vessel01, berth, dump])" - ] - }, - { - "cell_type": "code", - "execution_count": 301, - "id": "b380b201", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABGwAAAJGCAYAAAAOFxM2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABa0klEQVR4nO3deXhU5cH+8XuyJyQzLEImYSYQlU0EgqwRrVsUKT+rFZcqrRtKbXFBqlaqiPS1UldcClo3pO8LYm3ValVcqGKVLYSgLIogIAkhCSBZ2JKQnN8fkxkT1kwyM+fMzPdzXXPNYZZz7uSh1yv3e57nsRmGYQgAAAAAAACWEWN2AAAAAAAAADRHYQMAAAAAAGAxFDYAAAAAAAAWQ2EDAAAAAABgMRQ2AAAAAAAAFkNhAwAAAAAAYDEUNgAAAAAAABYTZ3aAQzU0NKikpERpaWmy2WxmxwEAAAAAAAgIwzBUXV2tzMxMxcQc+x4ayxU2JSUlcrvdZscAAAAAAAAIiqKiIrlcrmN+xnKFTVpamiRPeLvdbnIaAAAAAACAwKiqqpLb7fZ1H8diucLGOw3KbrdT2AAAAAAAgIjTkiVgWHQYAAAAAADAYihsAAAAAAAALIbCBgAAAAAAwGIst4YNAAAAAACtUV9fr7q6OrNjIMolJCQcd8vulqCwAQAAAACENcMwVFpaqoqKCrOjAIqJiVF2drYSEhLadB4KGwAAAABAWPOWNV26dFFKSkqLduABgqGhoUElJSXavn27srKy2vR3kcIGAAAAABC26uvrfWVNp06dzI4DqHPnziopKdHBgwcVHx/f6vOw6DAAAAAAIGx516xJSUkxOQng4Z0KVV9f36bzUNgAAAAAAMIe06BgFYH6u0hhAwAAAAAAYDEUNgAAAAAA4Ii2bNkim82mVatWmR3FVGeffbYmTpwY0muy6DAAAAAAADgit9ut7du364QTTjA7StShsAEAAAAAAEcUGxsrp9NpdoyoxJQoAAAAAABM8I9//EP9+vVTcnKyOnXqpLy8PO3du9f3/osvvqg+ffooKSlJvXv31qxZs5p9//e//7169uyplJQUnXjiiZoyZYpv1yyvBx98UF26dFFaWppuvPFG3XPPPcrJyfG939DQoD/+8Y9yuVxKTExUTk6OFixY4Hv/0ClRn376qWw2mxYuXKjBgwcrJSVFp59+utavX+/XdZtqaGiQy+XSs88+2+z1wsJCxcTE6Pvvv5ckVVRU6MYbb1Tnzp1lt9t17rnn6ssvv/R9/ssvv9Q555yjtLQ02e12DRo0SCtWrJAkff/997rooovUoUMHtWvXTn379tV7773n++6aNWs0atQopaamKj09Xb/61a+0c+fOI+YNFQobAAAAAEBEMQxD+2oPhvxhGEaLM27fvl1XXXWVbrjhBn399df69NNPdemll/rOMXfuXN1///3605/+pK+//loPPfSQpkyZojlz5vjOkZaWpldeeUXr1q3TU089pRdeeEEzZszwvT937lz96U9/0sMPP6yCggJlZWUdVoo89dRTevzxx/XYY4/pq6++0siRI/Wzn/1MGzZsOGb+e++9V48//rhWrFihuLg43XDDDX5dt6mYmBhdddVVmjdvXrPX586dqxEjRqhbt26SpMsvv1zl5eV6//33VVBQoNNOO03nnXeefvjhB0nS2LFj5XK5lJ+fr4KCAt1zzz2Kj4+XJE2YMEE1NTX67LPPtHr1aj388MNKTU2V5CmCzj33XA0cOFArVqzQggULVFZWpiuuuOKYv4Ngsxn+/I0KgaqqKjkcDlVWVsput5sdBwAAAABgYQcOHNDmzZuVnZ2tpKQkSdK+2oM65f4PQp5l3R9HKiWhZSuPrFy5UoMGDdKWLVt8hURTJ598sv7nf/5HV111le+1Bx98UO+9954WL158xHM+9thjmj9/vu+ukuHDh2vw4MH6y1/+4vvMGWecoT179vjumOnatasmTJigP/zhD77PDB06VEOGDNHMmTO1ZcsWZWdnq7CwUDk5Ofr00091zjnn6OOPP9Z5550nSXrvvfc0evRo7d+/X0lJSS267qFWrVql0047TVu2bFFWVpYaGhqUlZWl++67TzfffLM+//xzjR49WuXl5UpMTGz2e7r77rs1fvx42e12PfPMM7r22msPO3///v01ZswYTZ069bD3HnzwQf33v//VBx/8+HemuLhYbrdb69evV8+ePXX22WcrJydHTz755BHzN3Wkv5Ne/nQe3GEDAAAAAECIDRgwQOedd5769eunyy+/XC+88IJ2794tSdq7d6++++47jRs3Tqmpqb7Hgw8+qO+++853jtdee00jRoyQ0+lUamqq7rvvPm3dutX3/vr16zV06NBm123656qqKpWUlGjEiBHNPjNixAh9/fXXx8zfv39/33FGRoYkqby8vEXXPZKcnBz16dPHd5fNokWLVF5erssvv1ySZ7rTnj171KlTp2a/k82bN/t+J5MmTdKNN96ovLw8/fnPf272u7rtttv04IMPasSIEZo6daq++uor33tffvmlPvnkk2bn7d27tyQ1O0eosegwAAAAACCiJMfHat0fR5py3ZaKjY3VRx99pMWLF+vDDz/UM888o3vvvVfLli1TSkqKJOmFF17QsGHDDvueJC1ZskRjx47VtGnTNHLkSDkcDs2fP1+PP/544H6gY/BONZIkm80mybMWTVuMHTtW8+bN0z333KN58+bpwgsvVKdOnSRJe/bsUUZGhj799NPDvte+fXtJ0gMPPKCrr75a7777rt5//31NnTpV8+fP189//nPdeOONGjlypN599119+OGHmj59uh5//HHdeuut2rNnjy666CI9/PDDh53bW0aZwa87bOrr6zVlyhRlZ2crOTlZJ510kv7nf/6n2Tw9wzB0//33KyMjQ8nJycrLyzvu3DcAAAAAAALFZrMpJSEu5A9vceFPzhEjRmjatGkqLCxUQkKC3nzzTaWnpyszM1ObNm3SySef3OyRnZ0tSVq8eLG6deume++9V4MHD1aPHj18i/N69erVS/n5+c1ea/pnu92uzMxMffHFF80+88UXX+iUU07x62fx57pHc/XVV2vNmjUqKCjQP/7xD40dO9b33mmnnabS0lLFxcUd9jtpuuV4z549dccdd+jDDz/UpZdeqtmzZ/vec7vduvnmm/XGG2/od7/7nV544QXfudeuXavu3bsfdu527dq1+vfQVn7dYfPwww/r2Wef1Zw5c9S3b1+tWLFC119/vRwOh2677TZJ0iOPPKKnn35ac+bMUXZ2tqZMmaKRI0dq3bp1h83dAgAAAAAgGi1btkwLFy7UBRdcoC5dumjZsmXasWOH+vTpI0maNm2abrvtNjkcDl144YWqqanRihUrtHv3bk2aNEk9evTQ1q1bNX/+fA0ZMkTvvvuu3nzzzWbXuPXWW3XTTTdp8ODBOv300/Xaa6/pq6++0oknnuj7zF133aWpU6fqpJNOUk5OjmbPnq1Vq1Zp7ty5rf7ZWnLdI+nevbtOP/10jRs3TvX19frZz37mey8vL0+5ubm65JJL9Mgjj6hnz54qKSnRu+++q5///Ofq27ev7rrr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plot.get_step_chart([vessel02, berth, offshore])" - ] } ], "metadata": { @@ -5526,7 +604,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.9.16" } }, "nbformat": 4, diff --git a/src/openclsim/plugins/__init__.py b/src/openclsim/plugins/__init__.py index 0fc25896..bce391a2 100644 --- a/src/openclsim/plugins/__init__.py +++ b/src/openclsim/plugins/__init__.py @@ -3,7 +3,12 @@ from .delay import DelayPlugin, HasDelayPlugin from .weather import HasWeatherPluginActivity, WeatherCriterion from .depth import HasDepthPluginActivity, DepthCriterion -from .access import HasDredgePluginActivity, DredgeCriterion +from .access import ( + HasDredgePluginActivity, + DredgeCriterion, + HasTidePluginActivity, + TideCriterion, +) __all__ = [ "HasWeatherPluginActivity", @@ -14,4 +19,6 @@ "DepthPlugin", "HasDredgePluginActivity", "DredgeCriterion", + "HasTidePluginActivity", + "TideCriterion", ] diff --git a/src/openclsim/plugins/access.py b/src/openclsim/plugins/access.py index e85eb273..2984e6ad 100644 --- a/src/openclsim/plugins/access.py +++ b/src/openclsim/plugins/access.py @@ -32,6 +32,27 @@ def __init__( self.name = name +class TideCriterion: + """ + Used to add determine if a vessel can start sailing based on the tide + + Parameters + ---------- + ... + + """ + + def __init__( + self, + name: str, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + """Initialization""" + self.name = name + + class DredgePluginActivity(openclsim.model.AbstractPluginClass): """Mixin for ShiftAmountActivity to initialize TestPluginShiftAmountActivity.""" @@ -80,6 +101,66 @@ def process_data(self, criterion) -> dict: return result +class TidePluginActivity(openclsim.model.AbstractPluginClass): + """Mixin for ShiftAmountActivity to initialize ShiftAmountActivity.""" + + def __init__( + self, + tide_criteria=None, + destination=None, + vessel=None, + actual_water_level=None, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + + assert isinstance(tide_criteria, TideCriterion) + self.tide_criteria = tide_criteria + self.actual_water_level = actual_water_level + self.destination = destination + + def pre_process(self, env, activity_log, activity, *args, **kwargs): + print("check tidal criteria", env.now) + + if self.tide_criteria is not None: + print("wait until we tidal window allows to sail") + activity_label = {"type": "plugin", "ref": "tide"} + waiting = self.time_until_tide_allows() + print(f"waiting for {waiting} seconds") + return activity.delay_processing(env, activity_label, activity_log, waiting) + else: + return {} + + def tide_allows(self): + logger.info("True if we tidal window allows to sail") + print(self.actual_water_level, self.destination.MBL) + available_water_depth = self.actual_water_level - self.destination.MBL + gross_ukc = available_water_depth - self.vessel.T + + if gross_ukc > 0: + print("we have positive under keel clearance") + return True + else: + print("we do not have positive under keel clearance") + return False + + def time_until_dredging_needed(self): + """compute how long until next dredging cycle starts""" + remaining_bed_level = self.destination.DCL - self.destination.ABL + print(f"remaining_bed_level: {remaining_bed_level}") + if remaining_bed_level < 0: + return 0 + + # m / m/s + remaining_duration = remaining_bed_level / self.destination.SR + return remaining_duration + + def process_data(self, criterion) -> dict: + result: dict = {} + return result + + class HasDredgePluginActivity(openclsim.model.PluginActivity): """Mixin for Activity to initialize DredgePluginActivity.""" @@ -95,3 +176,16 @@ def __init__(self, dredge_criteria, *args, **kwargs): dredge_criteria=dredge_criteria, destination=destination ) self.register_plugin(plugin=dredge_plugin, priority=2) + + +class HasTidePluginActivity(openclsim.model.PluginActivity): + """Mixin for Activity to initialize TidePluginActivity.""" + + def __init__(self, tide_criteria, *args, **kwargs): + super().__init__(*args, **kwargs) + + if tide_criteria is not None and isinstance( + self, openclsim.model.PluginActivity + ): + tide_plugin = TidePluginActivity(tide_criteria=tide_criteria) + self.register_plugin(plugin=dredge_plugin, priority=2) From 7d0190f6a09461ca70439b6971b29c7fcd034fa0 Mon Sep 17 00:00:00 2001 From: Fedor Baart Date: Wed, 7 Feb 2024 16:57:13 +0100 Subject: [PATCH 086/100] rename function --- src/openclsim/plugins/access.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openclsim/plugins/access.py b/src/openclsim/plugins/access.py index 2984e6ad..c7ac04db 100644 --- a/src/openclsim/plugins/access.py +++ b/src/openclsim/plugins/access.py @@ -145,7 +145,7 @@ def tide_allows(self): print("we do not have positive under keel clearance") return False - def time_until_dredging_needed(self): + def time_until_tide_allows(self): """compute how long until next dredging cycle starts""" remaining_bed_level = self.destination.DCL - self.destination.ABL print(f"remaining_bed_level: {remaining_bed_level}") From 5f12f6c78e6fdccffb3682c706e6f6bf06a84818 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Fri, 5 Apr 2024 14:17:53 +0200 Subject: [PATCH 087/100] Add WID Notebook --- notebooks/39_Water_Injection_Dredging.ipynb | 1003 +++++++++++++++++++ 1 file changed, 1003 insertions(+) create mode 100644 notebooks/39_Water_Injection_Dredging.ipynb diff --git a/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb new file mode 100644 index 00000000..21bafda5 --- /dev/null +++ b/notebooks/39_Water_Injection_Dredging.ipynb @@ -0,0 +1,1003 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "e92bbd48-270d-41f1-8073-214607b13652", + "metadata": {}, + "outputs": [], + "source": [ + "# import datetime, time\n", + "import simpy\n", + "import shapely.geometry\n", + "import pandas as pd\n", + "import inspect\n", + "import sys \n", + "import os \n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e9c8d3ea-28e4-4276-a08a-6d823df569ce", + "metadata": {}, + "outputs": [], + "source": [ + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plot as plot\n", + "import openclsim.plugins as plugins\n", + "\n", + "import openclsim.WID as WID" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "877927ec-0040-4d99-a6cd-7bd79ade2df0", + "metadata": {}, + "outputs": [], + "source": [ + "Site = type(\n", + " \"Site\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.ContainerDependentMovable, \n", + " core.HasResource,\n", + " core.WIDProcessor,\n", + " core.Identifiable,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", + "metadata": {}, + "outputs": [], + "source": [ + "location_dredging_site = shapely.geometry.Point(1, 1)\n", + "\n", + "data_dredging_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging location\",\n", + " \"geometry\": location_dredging_site, \n", + " \"capacity\":90000,\n", + " \"level\":90000,\n", + "}\n", + "\n", + "Dredging_site = Site(**data_dredging_site)\n", + "\n", + "data_vessel = {\n", + " \"env\": my_env,\n", + " \"name\": \"WID vessel\",\n", + " \"geometry\": location_dredging_site, \n", + " \"capacity\":1740,\n", + " \"compute_v\": lambda x: 1\n", + "}\n", + "\n", + "WID_vessel = TransportProcessingResource(**data_vessel)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "98fbdcce-4b95-4ed6-aada-584c64cd9472", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", + "metadata": {}, + "outputs": [], + "source": [ + "sub_processes = [\n", + " model.ProduceAmountActivity(\n", + " env=my_env,\n", + " WIDprocessor=WID_vessel,\n", + " destination = WID_vessel,\n", + " origin=Dredging_site,\n", + " name='WID activity',\n", + " registry=registry,\n", + " amount=2,\n", + " duration=5,\n", + " ),\n", + " model.BasicActivity(\n", + " env=my_env,\n", + " name='Basic activity',\n", + " registry=registry,\n", + " duration=1\n", + " )\n", + "]\n", + "\n", + "while_activity = model.WhileActivity(\n", + " env=my_env,\n", + " name='While activity',\n", + " registry=registry,\n", + " sub_processes=sub_processes,\n", + " condition_event=[\n", + " {\"type\":\"container\", \"concept\":Dredging_site,\"state\":\"empty\"}\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", + "metadata": {}, + "outputs": [], + "source": [ + "model.register_processes([while_activity])\n", + "my_env.run(until=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b86e412e-d68c-4041-b687-6379680a6d13", + "metadata": {}, + "outputs": [], + "source": [ + "df_WID = pd.concat(\n", + " [\n", + " plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes])\n", + " for act in sub_processes\n", + " ]\n", + ").sort_values(by=['Timestamp'])\n", + "df_SITE = pd.concat(\n", + " [\n", + " plot.get_log_dataframe(Dredging_site, [while_activity, *sub_processes])\n", + " for act in sub_processes\n", + " ]\n", + ").sort_values(by=['Timestamp'])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "fecee48b-508b-45ac-8b04-494a4e4bea41", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START0.0POINT (1 1)
1WID activity1970-01-01 00:00:05STOP0.0POINT (1 1)
2WID activity1970-01-01 00:00:06START0.0POINT (1 1)
3WID activity1970-01-01 00:00:11STOP0.0POINT (1 1)
4WID activity1970-01-01 00:00:12START0.0POINT (1 1)
5WID activity1970-01-01 00:00:17STOP0.0POINT (1 1)
6WID activity1970-01-01 00:00:18START0.0POINT (1 1)
7WID activity1970-01-01 00:00:23STOP0.0POINT (1 1)
8WID activity1970-01-01 00:00:24START0.0POINT (1 1)
9WID activity1970-01-01 00:00:29STOP0.0POINT (1 1)
10WID activity1970-01-01 00:00:30START0.0POINT (1 1)
11WID activity1970-01-01 00:00:35STOP0.0POINT (1 1)
12WID activity1970-01-01 00:00:36START0.0POINT (1 1)
13WID activity1970-01-01 00:00:41STOP0.0POINT (1 1)
14WID activity1970-01-01 00:00:42START0.0POINT (1 1)
15WID activity1970-01-01 00:00:47STOP0.0POINT (1 1)
16WID activity1970-01-01 00:00:48START0.0POINT (1 1)
17WID activity1970-01-01 00:00:53STOP0.0POINT (1 1)
18WID activity1970-01-01 00:00:54START0.0POINT (1 1)
19WID activity1970-01-01 00:00:59STOP0.0POINT (1 1)
20WID activity1970-01-01 00:01:00START0.0POINT (1 1)
21WID activity1970-01-01 00:01:05STOP0.0POINT (1 1)
22WID activity1970-01-01 00:01:06START0.0POINT (1 1)
23WID activity1970-01-01 00:01:11STOP0.0POINT (1 1)
24WID activity1970-01-01 00:01:12START0.0POINT (1 1)
25WID activity1970-01-01 00:01:17STOP0.0POINT (1 1)
26WID activity1970-01-01 00:01:18START0.0POINT (1 1)
27WID activity1970-01-01 00:01:23STOP0.0POINT (1 1)
28WID activity1970-01-01 00:01:24START0.0POINT (1 1)
29WID activity1970-01-01 00:01:29STOP0.0POINT (1 1)
30WID activity1970-01-01 00:01:30START0.0POINT (1 1)
31WID activity1970-01-01 00:01:35STOP0.0POINT (1 1)
32WID activity1970-01-01 00:01:36START0.0POINT (1 1)
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 WID activity 1970-01-01 00:00:00 START 0.0 \n", + "1 WID activity 1970-01-01 00:00:05 STOP 0.0 \n", + "2 WID activity 1970-01-01 00:00:06 START 0.0 \n", + "3 WID activity 1970-01-01 00:00:11 STOP 0.0 \n", + "4 WID activity 1970-01-01 00:00:12 START 0.0 \n", + "5 WID activity 1970-01-01 00:00:17 STOP 0.0 \n", + "6 WID activity 1970-01-01 00:00:18 START 0.0 \n", + "7 WID activity 1970-01-01 00:00:23 STOP 0.0 \n", + "8 WID activity 1970-01-01 00:00:24 START 0.0 \n", + "9 WID activity 1970-01-01 00:00:29 STOP 0.0 \n", + "10 WID activity 1970-01-01 00:00:30 START 0.0 \n", + "11 WID activity 1970-01-01 00:00:35 STOP 0.0 \n", + "12 WID activity 1970-01-01 00:00:36 START 0.0 \n", + "13 WID activity 1970-01-01 00:00:41 STOP 0.0 \n", + "14 WID activity 1970-01-01 00:00:42 START 0.0 \n", + "15 WID activity 1970-01-01 00:00:47 STOP 0.0 \n", + "16 WID activity 1970-01-01 00:00:48 START 0.0 \n", + "17 WID activity 1970-01-01 00:00:53 STOP 0.0 \n", + "18 WID activity 1970-01-01 00:00:54 START 0.0 \n", + "19 WID activity 1970-01-01 00:00:59 STOP 0.0 \n", + "20 WID activity 1970-01-01 00:01:00 START 0.0 \n", + "21 WID activity 1970-01-01 00:01:05 STOP 0.0 \n", + "22 WID activity 1970-01-01 00:01:06 START 0.0 \n", + "23 WID activity 1970-01-01 00:01:11 STOP 0.0 \n", + "24 WID activity 1970-01-01 00:01:12 START 0.0 \n", + "25 WID activity 1970-01-01 00:01:17 STOP 0.0 \n", + "26 WID activity 1970-01-01 00:01:18 START 0.0 \n", + "27 WID activity 1970-01-01 00:01:23 STOP 0.0 \n", + "28 WID activity 1970-01-01 00:01:24 START 0.0 \n", + "29 WID activity 1970-01-01 00:01:29 STOP 0.0 \n", + "30 WID activity 1970-01-01 00:01:30 START 0.0 \n", + "31 WID activity 1970-01-01 00:01:35 STOP 0.0 \n", + "32 WID activity 1970-01-01 00:01:36 START 0.0 \n", + "\n", + " geometry \n", + "0 POINT (1 1) \n", + "1 POINT (1 1) \n", + "2 POINT (1 1) \n", + "3 POINT (1 1) \n", + "4 POINT (1 1) \n", + "5 POINT (1 1) \n", + "6 POINT (1 1) \n", + "7 POINT (1 1) \n", + "8 POINT (1 1) \n", + "9 POINT (1 1) \n", + "10 POINT (1 1) \n", + "11 POINT (1 1) \n", + "12 POINT (1 1) \n", + "13 POINT (1 1) \n", + "14 POINT (1 1) \n", + "15 POINT (1 1) \n", + "16 POINT (1 1) \n", + "17 POINT (1 1) \n", + "18 POINT (1 1) \n", + "19 POINT (1 1) \n", + "20 POINT (1 1) \n", + "21 POINT (1 1) \n", + "22 POINT (1 1) \n", + "23 POINT (1 1) \n", + "24 POINT (1 1) \n", + "25 POINT (1 1) \n", + "26 POINT (1 1) \n", + "27 POINT (1 1) \n", + "28 POINT (1 1) \n", + "29 POINT (1 1) \n", + "30 POINT (1 1) \n", + "31 POINT (1 1) \n", + "32 POINT (1 1) " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "50eb7960-37a2-4dec-98a3-2095fb1880b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START90000POINT (1 1)
1WID activity1970-01-01 00:00:05STOP89998POINT (1 1)
2WID activity1970-01-01 00:00:06START89998POINT (1 1)
3WID activity1970-01-01 00:00:11STOP89996POINT (1 1)
4WID activity1970-01-01 00:00:12START89996POINT (1 1)
5WID activity1970-01-01 00:00:17STOP89994POINT (1 1)
6WID activity1970-01-01 00:00:18START89994POINT (1 1)
7WID activity1970-01-01 00:00:23STOP89992POINT (1 1)
8WID activity1970-01-01 00:00:24START89992POINT (1 1)
9WID activity1970-01-01 00:00:29STOP89990POINT (1 1)
10WID activity1970-01-01 00:00:30START89990POINT (1 1)
11WID activity1970-01-01 00:00:35STOP89988POINT (1 1)
12WID activity1970-01-01 00:00:36START89988POINT (1 1)
13WID activity1970-01-01 00:00:41STOP89986POINT (1 1)
14WID activity1970-01-01 00:00:42START89986POINT (1 1)
15WID activity1970-01-01 00:00:47STOP89984POINT (1 1)
16WID activity1970-01-01 00:00:48START89984POINT (1 1)
17WID activity1970-01-01 00:00:53STOP89982POINT (1 1)
18WID activity1970-01-01 00:00:54START89982POINT (1 1)
19WID activity1970-01-01 00:00:59STOP89980POINT (1 1)
20WID activity1970-01-01 00:01:00START89980POINT (1 1)
21WID activity1970-01-01 00:01:05STOP89978POINT (1 1)
22WID activity1970-01-01 00:01:06START89978POINT (1 1)
23WID activity1970-01-01 00:01:11STOP89976POINT (1 1)
24WID activity1970-01-01 00:01:12START89976POINT (1 1)
25WID activity1970-01-01 00:01:17STOP89974POINT (1 1)
26WID activity1970-01-01 00:01:18START89974POINT (1 1)
27WID activity1970-01-01 00:01:23STOP89972POINT (1 1)
28WID activity1970-01-01 00:01:24START89972POINT (1 1)
29WID activity1970-01-01 00:01:29STOP89970POINT (1 1)
30WID activity1970-01-01 00:01:30START89970POINT (1 1)
31WID activity1970-01-01 00:01:35STOP89968POINT (1 1)
32WID activity1970-01-01 00:01:36START89968POINT (1 1)
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 WID activity 1970-01-01 00:00:00 START 90000 \n", + "1 WID activity 1970-01-01 00:00:05 STOP 89998 \n", + "2 WID activity 1970-01-01 00:00:06 START 89998 \n", + "3 WID activity 1970-01-01 00:00:11 STOP 89996 \n", + "4 WID activity 1970-01-01 00:00:12 START 89996 \n", + "5 WID activity 1970-01-01 00:00:17 STOP 89994 \n", + "6 WID activity 1970-01-01 00:00:18 START 89994 \n", + "7 WID activity 1970-01-01 00:00:23 STOP 89992 \n", + "8 WID activity 1970-01-01 00:00:24 START 89992 \n", + "9 WID activity 1970-01-01 00:00:29 STOP 89990 \n", + "10 WID activity 1970-01-01 00:00:30 START 89990 \n", + "11 WID activity 1970-01-01 00:00:35 STOP 89988 \n", + "12 WID activity 1970-01-01 00:00:36 START 89988 \n", + "13 WID activity 1970-01-01 00:00:41 STOP 89986 \n", + "14 WID activity 1970-01-01 00:00:42 START 89986 \n", + "15 WID activity 1970-01-01 00:00:47 STOP 89984 \n", + "16 WID activity 1970-01-01 00:00:48 START 89984 \n", + "17 WID activity 1970-01-01 00:00:53 STOP 89982 \n", + "18 WID activity 1970-01-01 00:00:54 START 89982 \n", + "19 WID activity 1970-01-01 00:00:59 STOP 89980 \n", + "20 WID activity 1970-01-01 00:01:00 START 89980 \n", + "21 WID activity 1970-01-01 00:01:05 STOP 89978 \n", + "22 WID activity 1970-01-01 00:01:06 START 89978 \n", + "23 WID activity 1970-01-01 00:01:11 STOP 89976 \n", + "24 WID activity 1970-01-01 00:01:12 START 89976 \n", + "25 WID activity 1970-01-01 00:01:17 STOP 89974 \n", + "26 WID activity 1970-01-01 00:01:18 START 89974 \n", + "27 WID activity 1970-01-01 00:01:23 STOP 89972 \n", + "28 WID activity 1970-01-01 00:01:24 START 89972 \n", + "29 WID activity 1970-01-01 00:01:29 STOP 89970 \n", + "30 WID activity 1970-01-01 00:01:30 START 89970 \n", + "31 WID activity 1970-01-01 00:01:35 STOP 89968 \n", + "32 WID activity 1970-01-01 00:01:36 START 89968 \n", + "\n", + " geometry \n", + "0 POINT (1 1) \n", + "1 POINT (1 1) \n", + "2 POINT (1 1) \n", + "3 POINT (1 1) \n", + "4 POINT (1 1) \n", + "5 POINT (1 1) \n", + "6 POINT (1 1) \n", + "7 POINT (1 1) \n", + "8 POINT (1 1) \n", + "9 POINT (1 1) \n", + "10 POINT (1 1) \n", + "11 POINT (1 1) \n", + "12 POINT (1 1) \n", + "13 POINT (1 1) \n", + "14 POINT (1 1) \n", + "15 POINT (1 1) \n", + "16 POINT (1 1) \n", + "17 POINT (1 1) \n", + "18 POINT (1 1) \n", + "19 POINT (1 1) \n", + "20 POINT (1 1) \n", + "21 POINT (1 1) \n", + "22 POINT (1 1) \n", + "23 POINT (1 1) \n", + "24 POINT (1 1) \n", + "25 POINT (1 1) \n", + "26 POINT (1 1) \n", + "27 POINT (1 1) \n", + "28 POINT (1 1) \n", + "29 POINT (1 1) \n", + "30 POINT (1 1) \n", + "31 POINT (1 1) \n", + "32 POINT (1 1) " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(Dredging_site, [while_activity]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAJGCAYAAADBFeWwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNJ0lEQVR4nOzdd3wV9L3/8dc52WEkjBBWWIKM4EBxoCgr4GBWb63YK1JFr9U6EKhSZap1ANarVrHVq1brddRawMkIQUGqgmAlrDBkE0CQESTrnN8f/Jrb1HWiwCHJ6/l4nMejJN9z8k70YfWdz+d7AuFwOIwkSZIkSZKqpWC0A0iSJEmSJCl6LIckSZIkSZKqMcshSZIkSZKkasxySJIkSZIkqRqzHJIkSZIkSarGLIckSZIkSZKqMcshSZIkSZKkaiw22gGiKRQKsXXrVmrVqkUgEIh2HEmSJEmSpCMiHA6zf/9+GjduTDD43bNB1boc2rp1KxkZGdGOIUmSJEmSdFRs2rSJpk2bfueZal0O1apVCzj8g6pdu3aU00iSJEmSJB0Z+/btIyMjo6z7+C7Vuhz65ypZ7dq1LYckSZIkSVKVE8k1Ol5ILUmSJEmSVI1ZDkmSJEmSJFVjlkOSJEmSJEnVWLW+c0iSJEmSpH8qLS2luLg42jGkiMTFxRETE3NEXstySJIkSZJUrYXDYbZv386XX34Z7ShShaSmptKwYcOILp3+LpZDkiRJkqRq7Z/FUIMGDUhOTv7R/6EtHW3hcJiDBw+yY8cOABo1avSjXs9ySJIkSZJUbZWWlpYVQ/Xq1Yt2HCliSUlJAOzYsYMGDRr8qBUzL6SWJEmSJFVb/7xjKDk5OcpJpIr759+3P/auLMshSZIkSVK15yqZKqMj9fet5ZAkSZIkSVI1ZjkkSZIkSZJUjVkOSZIkSZJUBXTv3p1bb731qLx2ixYtePjhhyM+//nnnxMIBFi6dOlRyfNPOTk5BAIBvvzyy6P6db7Psfp+jxbfrUySJEmSJB1RGRkZbNu2jfr160c7yhE3dOhQvvzyS/72t7+Vfayyf7+WQ5IkSZIkVQNFRUXEx8cfk68VExNDw4YNj8nXOh5U9u/XtTJJkiRJkv5FOBzmYFHJMX+Ew+GIMxYUFDBkyBBq1qxJo0aNmDJlytfOtGjRgnvuuYehQ4eSkpLCtddeC8AHH3zA+eefT1JSEhkZGdx8880UFBSUPW/Hjh3079+fpKQkWrZsyZ///OevvfbKlSvp2rUriYmJdOjQgdmzZxMIBMqmaf59zeqf619z5syhc+fOJCcnc84557Bq1apyr3vPPffQoEEDatWqxbBhw7jjjjs49dRTI/65ALz22mtkZmaSkJBAixYtvvazKSws5Ne//jUZGRkkJCTQpk0bnn76aQBKS0u55ppraNmyJUlJSbRt25b//u//Lnvu+PHjee6555g2bRqBQIBAIEBOTs43rpXNmzePM888k4SEBBo1asQdd9xBSUlJ2ee7d+/OzTffzK9//Wvq1q1Lw4YNGT9+fIW+1yPFySFJkiRJkv7FV8WldBj77jH/ussnXkByfGT/mT5q1Cjmzp3L66+/TsOGDfnNb37D4sWLv1akTJo0iTFjxnDXXXcB8Nlnn3HBBRdw99138/TTT7Nz505+9atf8atf/YpnnnkGOLw2tWnTJrKzs4mPj+fmm29mx44dZa8ZCoUYNGgQzZo148MPP2T//v2MGDEiotx33nknU6ZMIS0tjeuvv56rr76aBQsWAPDnP/+Ze++9l8cff5xzzz2Xl156iSlTptCyZcuIXhtg8eLFXHbZZYwfP56f/exnfPDBB9xwww3Uq1ePoUOHAjBkyBAWLlzII488wimnnML69evZtWtX2ffWtGlTXnnlFerXr88HH3zAddddR6NGjbjssssYOXIkK1asYN++fWU/r7p167J169ZyObZs2cLFF1/M0KFD+dOf/sTKlSu59tprSUxMLFcAPffcc9x22218+OGHLFy4kKFDh3LuuefSu3fviL/nI8FySJIkSZKkSuTAgQM8/fTT/OlPfyorEZ577jmaNm36tbM9e/Zk5MiRZX8eMmQIV1xxRdnF1W3atOGRRx6hW7duPPHEE2zcuJG3336bv//975x11lkAPP3007Rv377sNWbOnMnatWvJyckpW6W69957Iyo07r33Xrp16wbAHXfcQd++fTl06BCJiYk8+uijXHPNNfziF78AYOzYscycOZMDBw5E/LN56KGH6NWrF2PGjAHgxBNPZPny5UyaNImhQ4eyevVqXnnlFWbNmkVWVhYArVq1Knt+XFwcEyZMKPtzy5Yt+eCDD3jllVe47LLLqFmzJklJSRQWFn7nGtnjjz9ORkYGjz32GIFAgHbt2rF161Zuv/12xo4dSzB4eJHr5JNPZty4ccDhvxaPPfYYc+bMsRySJEmSJCmakuJiWD7xgqh83UisXbuWoqIiunTpUvaxunXr0rZt26+d7dy5c7k/L168mDVr1pRbFQuHw4RCIdavX8/q1auJjY0t97x27dqRmppa9udVq1aRkZFRrhw588wzI8p+8sknl/3vRo0aAYfX2Jo1a8aqVau44YYbyp0/88wzyc7Ojui1AVasWMHAgQPLfezcc8/l4YcfprS0lKVLlxITE1NWUH2TqVOn8tRTT7Fhwwa++uorioqKKrzatmLFCrp06UIgECiX48CBA2zevJlmzZoB5X8ecPhn8q9TWsdKhe8c2r9/P7feeivNmzcnKSmJc845h48//rjs8+FwmPHjx9O4cWOSkpLo3r07ubm55V6jsLCQm266ifr161OjRg0GDBjA5s2by53Zs2cPV155JSkpKaSkpHDllVd+7a3pNm7cSP/+/alRowb169fn5ptvpqioqKLfkiRJkiRJZQKBAMnxscf88a9FwnepyN1ENWrUKPfnUCjEf/3Xf7F06dKyx6effkpeXh4nnHBC2Wt/V5ZwOBxx1n8XFxdX9r//+RqhUOhrH/vXr1UR35TtX18jKSnpO5//yiuvMHz4cK6++mpmzpzJ0qVL+cUvflHhruG7cvzrx//15/HPz/3rz+NYqXA5NGzYMGbNmsXzzz/PZ599Rp8+fcjKymLLli0APPjggzz00EM89thjfPzxxzRs2JDevXuzf//+ste49dZbef3113nppZeYP38+Bw4coF+/fpSWlpadueKKK1i6dCnvvPMO77zzDkuXLuXKK68s+3xpaSl9+/aloKCA+fPn89JLL/Haa69FvOcoSZIkSVJl1Lp1a+Li4vj73/9e9rE9e/awevXq733uaaedRm5uLq1bt/7aIz4+nvbt21NSUsKiRYvKnrNq1apywxrt2rVj48aN5Ofnl33sX4dGfqi2bdvy0UcflfvYv+aIRIcOHZg/f365j33wwQeceOKJxMTEcNJJJxEKhZg3b943Pv/999/nnHPO4YYbbqBTp060bt2atWvXljsTHx9frr/4thwffPBBuWLqgw8+oFatWjRp0qRC39OxUKFy6KuvvuK1117jwQcf5Pzzz6d169aMHz+eli1b8sQTTxAOh3n44Ye58847ueSSS+jYsSPPPfccBw8e5MUXXwRg7969PP3000yZMoWsrCw6derECy+8wGeffcbs2bOBw+NX77zzDk899RRdunShS5cu/PGPf+SNN94ou8l85syZLF++nBdeeIFOnTqRlZXFlClT+OMf/8i+ffuO8I/p+LVj/yFe+XgToVDF2lRJkiRJUuVUs2ZNrrnmGkaNGsWcOXNYtmwZQ4cOLbvH5rvcfvvtLFy4kBtvvJGlS5eSl5fH9OnTuemmm4DDBc2FF17Itddey4cffsjixYsZNmxYuYmb3r17c8IJJ3DVVVfxj3/8gwULFnDnnXcC3z1x9H1uuukmnn76aZ577jny8vK45557+Mc//lGh1xwxYgRz5szh7rvvZvXq1Tz33HM89thjZfcutWjRgquuuoqrr76av/3tb6xfv56cnBxeeeUV4HDxtmjRIt59911Wr17NmDFjvlZ8tWjRgn/84x+sWrWKXbt2UVxc/LUcN9xwA5s2beKmm25i5cqVTJs2jXHjxnHbbbdF9NfpWKtQopKSEkpLS0lMTCz38aSkJObPn8/69evZvn07ffr0KftcQkIC3bp144MPPgAO7zcWFxeXO9O4cWM6duxYdmbhwoWkpKSUXX4FcPbZZ5OSklLuTMeOHWncuHHZmQsuuIDCwkIWL178jfkLCwvZt29fuUdld/9bK/n1a//gkic+4B+bv4x2HEmSJEnSMTBp0iTOP/98BgwYQFZWFl27duX000//3uedfPLJzJs3j7y8PM477zw6derEmDFjyu7/AXjmmWfIyMigW7duXHLJJVx33XU0aNCg7PMxMTH87W9/48CBA5xxxhkMGzas7N3Q/r0vqIif//znjB49mpEjR3Laaaexfv16hg4dWqHXPO2003jllVd46aWX6NixI2PHjmXixIll71QG8MQTT/Af//Ef3HDDDbRr145rr72WgoICAK6//nouueQSfvazn3HWWWfxxRdffO0epGuvvZa2bdvSuXNn0tLSyt5t7V81adKEt956i48++ohTTjmF66+/nmuuuabs53S8CYQruMB3zjnnEB8fz4svvkh6ejr/+7//y5AhQ2jTpg3PPPMM5557Llu2bClX2lx33XVs2LCBd999lxdffJFf/OIXFBYWlnvdPn360LJlS5588kl++9vf8uyzz35tJO7EE0/kF7/4BaNHj+a6667j888/Z+bMmeXOJCQk8OyzzzJ48OCv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rVuXWbNmkZWVxa5du0hLS+O9997jvPPOA2D//v3Url2b2bNn06tXr8PhAwFef/11Bg0aFFH+wsJCCgv/7zeJ+/btIyMjw7UySZKqiE827mHstGUs27IPgHYNazFxYEfObFk3yskkSZKOraO2Vta1a1fmzJnD6tWrAfj000+ZP38+F198MUBZ8ZKYmFj2nJiYGOLj45k/f37ZmUAgQEJCQtmZxMREgsFg2Zl69erRvn17/vSnP1FQUEBJSQlPPvkk6enpnH766eUy/epXv6J+/fqcccYZTJ06tdz00b+77777SElJKXtkZGRU5NuXJEnHudOa1WHajV25Z1BHUpLiWLl9P5c9uZBbX1rCjn2Hoh1PkiTpuFShcuj2229n8ODBtGvXjri4ODp16sStt97K4MGDAWjXrh3Nmzdn9OjR7Nmzh6KiIu6//362b9/Otm3bADj77LOpUaMGt99+OwcPHqSgoIBRo0YRCoXKzgQCAWbNmsWSJUuoVasWiYmJ/O53v+Odd94hNTW1LM/dd9/Nq6++yuzZs7n88ssZMWIEv/3tb781/+jRo9m7d2/ZY9OmTRX9eUmSpONcTDDAf57dnLkjuzP4zGYEAvC3pVvpOWUeT72/jmJXzSRJksqpUDn08ssv88ILL/Diiy/yySef8NxzzzF58mSee+45AOLi4njttddYvXo1devWJTk5mZycHC666CJiYmIASEtL49VXX2XGjBnUrFmzbMTptNNOKzsTDoe54YYbaNCgAe+//z4fffQRAwcOpF+/fmUFEsBdd91Fly5dOPXUUxkxYgQTJ05k0qRJ35o/ISGB2rVrl3tIkqSqqW6NeO675CSm3Xgup2SkcqCwhHveXMHF//0+H6zdFe14kiRJx40K3TmUkZHBHXfcwY033lj2sXvuuYcXXniBlStXlju7d+9eioqKSEtL46yzzqJz5878/ve/L3dm165dxMbGkpqaSsOGDRkxYgSjRo1izpw59OnTp9y9RABt2rThmmuu4Y477vjGfAsWLKBr165s376d9PT07/1+fCt7SZKqh1AozKuLN/HAO6vYXVAEQN+TG3FX3/Y0SkmKcjpJkqQj76jdOXTw4EGCwfJPiYmJ+cZ7flJSUkhLSyMvL49FixYxcODAr52pX78+qampZGdns2PHDgYMGFD2dYCvfa1gMPiddwotWbKExMTEcqtn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([Dredging_site])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee3c15b2-ab68-4d80-92e3-3a7aad842a6b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From be1413593b89d7e44f4f80317b0d23c6a5cfd141 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Fri, 5 Apr 2024 14:23:50 +0200 Subject: [PATCH 088/100] update --- notebooks/39_Water_Injection_Dredging.ipynb | 1003 ------------------- 1 file changed, 1003 deletions(-) delete mode 100644 notebooks/39_Water_Injection_Dredging.ipynb diff --git a/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb deleted file mode 100644 index 21bafda5..00000000 --- a/notebooks/39_Water_Injection_Dredging.ipynb +++ /dev/null @@ -1,1003 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "e92bbd48-270d-41f1-8073-214607b13652", - "metadata": {}, - "outputs": [], - "source": [ - "# import datetime, time\n", - "import simpy\n", - "import shapely.geometry\n", - "import pandas as pd\n", - "import inspect\n", - "import sys \n", - "import os \n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "e9c8d3ea-28e4-4276-a08a-6d823df569ce", - "metadata": {}, - "outputs": [], - "source": [ - "import openclsim.core as core\n", - "import openclsim.model as model\n", - "import openclsim.plot as plot\n", - "import openclsim.plugins as plugins\n", - "\n", - "import openclsim.WID as WID" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", - "metadata": {}, - "outputs": [], - "source": [ - "simulation_start = 0\n", - "my_env = simpy.Environment(initial_time=simulation_start)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "877927ec-0040-4d99-a6cd-7bd79ade2df0", - "metadata": {}, - "outputs": [], - "source": [ - "Site = type(\n", - " \"Site\",\n", - " (\n", - " core.Identifiable,\n", - " core.Log,\n", - " core.Locatable,\n", - " core.HasContainer,\n", - " core.HasResource,\n", - " ),\n", - " {},\n", - ")\n", - "TransportProcessingResource = type(\n", - " \"TransportProcessingResource\",\n", - " (\n", - " core.ContainerDependentMovable, \n", - " core.HasResource,\n", - " core.WIDProcessor,\n", - " core.Identifiable,\n", - " core.Log,\n", - " ),\n", - " {},\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", - "metadata": {}, - "outputs": [], - "source": [ - "location_dredging_site = shapely.geometry.Point(1, 1)\n", - "\n", - "data_dredging_site = {\n", - " \"env\": my_env,\n", - " \"name\": \"dredging location\",\n", - " \"geometry\": location_dredging_site, \n", - " \"capacity\":90000,\n", - " \"level\":90000,\n", - "}\n", - "\n", - "Dredging_site = Site(**data_dredging_site)\n", - "\n", - "data_vessel = {\n", - " \"env\": my_env,\n", - " \"name\": \"WID vessel\",\n", - " \"geometry\": location_dredging_site, \n", - " \"capacity\":1740,\n", - " \"compute_v\": lambda x: 1\n", - "}\n", - "\n", - "WID_vessel = TransportProcessingResource(**data_vessel)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "98fbdcce-4b95-4ed6-aada-584c64cd9472", - "metadata": {}, - "outputs": [], - "source": [ - "registry = {}" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", - "metadata": {}, - "outputs": [], - "source": [ - "sub_processes = [\n", - " model.ProduceAmountActivity(\n", - " env=my_env,\n", - " WIDprocessor=WID_vessel,\n", - " destination = WID_vessel,\n", - " origin=Dredging_site,\n", - " name='WID activity',\n", - " registry=registry,\n", - " amount=2,\n", - " duration=5,\n", - " ),\n", - " model.BasicActivity(\n", - " env=my_env,\n", - " name='Basic activity',\n", - " registry=registry,\n", - " duration=1\n", - " )\n", - "]\n", - "\n", - "while_activity = model.WhileActivity(\n", - " env=my_env,\n", - " name='While activity',\n", - " registry=registry,\n", - " sub_processes=sub_processes,\n", - " condition_event=[\n", - " {\"type\":\"container\", \"concept\":Dredging_site,\"state\":\"empty\"}\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", - "metadata": {}, - "outputs": [], - "source": [ - "model.register_processes([while_activity])\n", - "my_env.run(until=100)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "b86e412e-d68c-4041-b687-6379680a6d13", - "metadata": {}, - "outputs": [], - "source": [ - "df_WID = pd.concat(\n", - " [\n", - " plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes])\n", - " for act in sub_processes\n", - " ]\n", - ").sort_values(by=['Timestamp'])\n", - "df_SITE = pd.concat(\n", - " [\n", - " plot.get_log_dataframe(Dredging_site, [while_activity, *sub_processes])\n", - " for act in sub_processes\n", - " ]\n", - ").sort_values(by=['Timestamp'])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "fecee48b-508b-45ac-8b04-494a4e4bea41", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START0.0POINT (1 1)
1WID activity1970-01-01 00:00:05STOP0.0POINT (1 1)
2WID activity1970-01-01 00:00:06START0.0POINT (1 1)
3WID activity1970-01-01 00:00:11STOP0.0POINT (1 1)
4WID activity1970-01-01 00:00:12START0.0POINT (1 1)
5WID activity1970-01-01 00:00:17STOP0.0POINT (1 1)
6WID activity1970-01-01 00:00:18START0.0POINT (1 1)
7WID activity1970-01-01 00:00:23STOP0.0POINT (1 1)
8WID activity1970-01-01 00:00:24START0.0POINT (1 1)
9WID activity1970-01-01 00:00:29STOP0.0POINT (1 1)
10WID activity1970-01-01 00:00:30START0.0POINT (1 1)
11WID activity1970-01-01 00:00:35STOP0.0POINT (1 1)
12WID activity1970-01-01 00:00:36START0.0POINT (1 1)
13WID activity1970-01-01 00:00:41STOP0.0POINT (1 1)
14WID activity1970-01-01 00:00:42START0.0POINT (1 1)
15WID activity1970-01-01 00:00:47STOP0.0POINT (1 1)
16WID activity1970-01-01 00:00:48START0.0POINT (1 1)
17WID activity1970-01-01 00:00:53STOP0.0POINT (1 1)
18WID activity1970-01-01 00:00:54START0.0POINT (1 1)
19WID activity1970-01-01 00:00:59STOP0.0POINT (1 1)
20WID activity1970-01-01 00:01:00START0.0POINT (1 1)
21WID activity1970-01-01 00:01:05STOP0.0POINT (1 1)
22WID activity1970-01-01 00:01:06START0.0POINT (1 1)
23WID activity1970-01-01 00:01:11STOP0.0POINT (1 1)
24WID activity1970-01-01 00:01:12START0.0POINT (1 1)
25WID activity1970-01-01 00:01:17STOP0.0POINT (1 1)
26WID activity1970-01-01 00:01:18START0.0POINT (1 1)
27WID activity1970-01-01 00:01:23STOP0.0POINT (1 1)
28WID activity1970-01-01 00:01:24START0.0POINT (1 1)
29WID activity1970-01-01 00:01:29STOP0.0POINT (1 1)
30WID activity1970-01-01 00:01:30START0.0POINT (1 1)
31WID activity1970-01-01 00:01:35STOP0.0POINT (1 1)
32WID activity1970-01-01 00:01:36START0.0POINT (1 1)
\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState container level \\\n", - "0 WID activity 1970-01-01 00:00:00 START 0.0 \n", - "1 WID activity 1970-01-01 00:00:05 STOP 0.0 \n", - "2 WID activity 1970-01-01 00:00:06 START 0.0 \n", - "3 WID activity 1970-01-01 00:00:11 STOP 0.0 \n", - "4 WID activity 1970-01-01 00:00:12 START 0.0 \n", - "5 WID activity 1970-01-01 00:00:17 STOP 0.0 \n", - "6 WID activity 1970-01-01 00:00:18 START 0.0 \n", - "7 WID activity 1970-01-01 00:00:23 STOP 0.0 \n", - "8 WID activity 1970-01-01 00:00:24 START 0.0 \n", - "9 WID activity 1970-01-01 00:00:29 STOP 0.0 \n", - "10 WID activity 1970-01-01 00:00:30 START 0.0 \n", - "11 WID activity 1970-01-01 00:00:35 STOP 0.0 \n", - "12 WID activity 1970-01-01 00:00:36 START 0.0 \n", - "13 WID activity 1970-01-01 00:00:41 STOP 0.0 \n", - "14 WID activity 1970-01-01 00:00:42 START 0.0 \n", - "15 WID activity 1970-01-01 00:00:47 STOP 0.0 \n", - "16 WID activity 1970-01-01 00:00:48 START 0.0 \n", - "17 WID activity 1970-01-01 00:00:53 STOP 0.0 \n", - "18 WID activity 1970-01-01 00:00:54 START 0.0 \n", - "19 WID activity 1970-01-01 00:00:59 STOP 0.0 \n", - "20 WID activity 1970-01-01 00:01:00 START 0.0 \n", - "21 WID activity 1970-01-01 00:01:05 STOP 0.0 \n", - "22 WID activity 1970-01-01 00:01:06 START 0.0 \n", - "23 WID activity 1970-01-01 00:01:11 STOP 0.0 \n", - "24 WID activity 1970-01-01 00:01:12 START 0.0 \n", - "25 WID activity 1970-01-01 00:01:17 STOP 0.0 \n", - "26 WID activity 1970-01-01 00:01:18 START 0.0 \n", - "27 WID activity 1970-01-01 00:01:23 STOP 0.0 \n", - "28 WID activity 1970-01-01 00:01:24 START 0.0 \n", - "29 WID activity 1970-01-01 00:01:29 STOP 0.0 \n", - "30 WID activity 1970-01-01 00:01:30 START 0.0 \n", - "31 WID activity 1970-01-01 00:01:35 STOP 0.0 \n", - "32 WID activity 1970-01-01 00:01:36 START 0.0 \n", - "\n", - " geometry \n", - "0 POINT (1 1) \n", - "1 POINT (1 1) \n", - "2 POINT (1 1) \n", - "3 POINT (1 1) \n", - "4 POINT (1 1) \n", - "5 POINT (1 1) \n", - "6 POINT (1 1) \n", - "7 POINT (1 1) \n", - "8 POINT (1 1) \n", - "9 POINT (1 1) \n", - "10 POINT (1 1) \n", - "11 POINT (1 1) \n", - "12 POINT (1 1) \n", - "13 POINT (1 1) \n", - "14 POINT (1 1) \n", - "15 POINT (1 1) \n", - "16 POINT (1 1) \n", - "17 POINT (1 1) \n", - "18 POINT (1 1) \n", - "19 POINT (1 1) \n", - "20 POINT (1 1) \n", - "21 POINT (1 1) \n", - "22 POINT (1 1) \n", - "23 POINT (1 1) \n", - "24 POINT (1 1) \n", - "25 POINT (1 1) \n", - "26 POINT (1 1) \n", - "27 POINT (1 1) \n", - "28 POINT (1 1) \n", - "29 POINT (1 1) \n", - "30 POINT (1 1) \n", - "31 POINT (1 1) \n", - "32 POINT (1 1) " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes]))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "50eb7960-37a2-4dec-98a3-2095fb1880b1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START90000POINT (1 1)
1WID activity1970-01-01 00:00:05STOP89998POINT (1 1)
2WID activity1970-01-01 00:00:06START89998POINT (1 1)
3WID activity1970-01-01 00:00:11STOP89996POINT (1 1)
4WID activity1970-01-01 00:00:12START89996POINT (1 1)
5WID activity1970-01-01 00:00:17STOP89994POINT (1 1)
6WID activity1970-01-01 00:00:18START89994POINT (1 1)
7WID activity1970-01-01 00:00:23STOP89992POINT (1 1)
8WID activity1970-01-01 00:00:24START89992POINT (1 1)
9WID activity1970-01-01 00:00:29STOP89990POINT (1 1)
10WID activity1970-01-01 00:00:30START89990POINT (1 1)
11WID activity1970-01-01 00:00:35STOP89988POINT (1 1)
12WID activity1970-01-01 00:00:36START89988POINT (1 1)
13WID activity1970-01-01 00:00:41STOP89986POINT (1 1)
14WID activity1970-01-01 00:00:42START89986POINT (1 1)
15WID activity1970-01-01 00:00:47STOP89984POINT (1 1)
16WID activity1970-01-01 00:00:48START89984POINT (1 1)
17WID activity1970-01-01 00:00:53STOP89982POINT (1 1)
18WID activity1970-01-01 00:00:54START89982POINT (1 1)
19WID activity1970-01-01 00:00:59STOP89980POINT (1 1)
20WID activity1970-01-01 00:01:00START89980POINT (1 1)
21WID activity1970-01-01 00:01:05STOP89978POINT (1 1)
22WID activity1970-01-01 00:01:06START89978POINT (1 1)
23WID activity1970-01-01 00:01:11STOP89976POINT (1 1)
24WID activity1970-01-01 00:01:12START89976POINT (1 1)
25WID activity1970-01-01 00:01:17STOP89974POINT (1 1)
26WID activity1970-01-01 00:01:18START89974POINT (1 1)
27WID activity1970-01-01 00:01:23STOP89972POINT (1 1)
28WID activity1970-01-01 00:01:24START89972POINT (1 1)
29WID activity1970-01-01 00:01:29STOP89970POINT (1 1)
30WID activity1970-01-01 00:01:30START89970POINT (1 1)
31WID activity1970-01-01 00:01:35STOP89968POINT (1 1)
32WID activity1970-01-01 00:01:36START89968POINT (1 1)
\n", - "
" - ], - "text/plain": [ - " Activity Timestamp ActivityState container level \\\n", - "0 WID activity 1970-01-01 00:00:00 START 90000 \n", - "1 WID activity 1970-01-01 00:00:05 STOP 89998 \n", - "2 WID activity 1970-01-01 00:00:06 START 89998 \n", - "3 WID activity 1970-01-01 00:00:11 STOP 89996 \n", - "4 WID activity 1970-01-01 00:00:12 START 89996 \n", - "5 WID activity 1970-01-01 00:00:17 STOP 89994 \n", - "6 WID activity 1970-01-01 00:00:18 START 89994 \n", - "7 WID activity 1970-01-01 00:00:23 STOP 89992 \n", - "8 WID activity 1970-01-01 00:00:24 START 89992 \n", - "9 WID activity 1970-01-01 00:00:29 STOP 89990 \n", - "10 WID activity 1970-01-01 00:00:30 START 89990 \n", - "11 WID activity 1970-01-01 00:00:35 STOP 89988 \n", - "12 WID activity 1970-01-01 00:00:36 START 89988 \n", - "13 WID activity 1970-01-01 00:00:41 STOP 89986 \n", - "14 WID activity 1970-01-01 00:00:42 START 89986 \n", - "15 WID activity 1970-01-01 00:00:47 STOP 89984 \n", - "16 WID activity 1970-01-01 00:00:48 START 89984 \n", - "17 WID activity 1970-01-01 00:00:53 STOP 89982 \n", - "18 WID activity 1970-01-01 00:00:54 START 89982 \n", - "19 WID activity 1970-01-01 00:00:59 STOP 89980 \n", - "20 WID activity 1970-01-01 00:01:00 START 89980 \n", - "21 WID activity 1970-01-01 00:01:05 STOP 89978 \n", - "22 WID activity 1970-01-01 00:01:06 START 89978 \n", - "23 WID activity 1970-01-01 00:01:11 STOP 89976 \n", - "24 WID activity 1970-01-01 00:01:12 START 89976 \n", - "25 WID activity 1970-01-01 00:01:17 STOP 89974 \n", - "26 WID activity 1970-01-01 00:01:18 START 89974 \n", - "27 WID activity 1970-01-01 00:01:23 STOP 89972 \n", - "28 WID activity 1970-01-01 00:01:24 START 89972 \n", - "29 WID activity 1970-01-01 00:01:29 STOP 89970 \n", - "30 WID activity 1970-01-01 00:01:30 START 89970 \n", - "31 WID activity 1970-01-01 00:01:35 STOP 89968 \n", - "32 WID activity 1970-01-01 00:01:36 START 89968 \n", - "\n", - " geometry \n", - "0 POINT (1 1) \n", - "1 POINT (1 1) \n", - "2 POINT (1 1) \n", - "3 POINT (1 1) \n", - "4 POINT (1 1) \n", - "5 POINT (1 1) \n", - "6 POINT (1 1) \n", - "7 POINT (1 1) \n", - "8 POINT (1 1) \n", - "9 POINT (1 1) \n", - "10 POINT (1 1) \n", - "11 POINT (1 1) \n", - "12 POINT (1 1) \n", - "13 POINT (1 1) \n", - "14 POINT (1 1) \n", - "15 POINT (1 1) \n", - "16 POINT (1 1) \n", - "17 POINT (1 1) \n", - "18 POINT (1 1) \n", - "19 POINT (1 1) \n", - "20 POINT (1 1) \n", - "21 POINT (1 1) \n", - "22 POINT (1 1) \n", - "23 POINT (1 1) \n", - "24 POINT (1 1) \n", - "25 POINT (1 1) \n", - "26 POINT (1 1) \n", - "27 POINT (1 1) \n", - "28 POINT (1 1) \n", - "29 POINT (1 1) \n", - "30 POINT (1 1) \n", - "31 POINT (1 1) \n", - "32 POINT (1 1) " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(plot.get_log_dataframe(Dredging_site, [while_activity]))" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAJGCAYAAADBFeWwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNJ0lEQVR4nOzdd3wV9L3/8dc52WEkjBBWWIKM4EBxoCgr4GBWb63YK1JFr9U6EKhSZap1ANarVrHVq1brddRawMkIQUGqgmAlrDBkE0CQESTrnN8f/Jrb1HWiwCHJ6/l4nMejJN9z8k70YfWdz+d7AuFwOIwkSZIkSZKqpWC0A0iSJEmSJCl6LIckSZIkSZKqMcshSZIkSZKkasxySJIkSZIkqRqzHJIkSZIkSarGLIckSZIkSZKqMcshSZIkSZKkaiw22gGiKRQKsXXrVmrVqkUgEIh2HEmSJEmSpCMiHA6zf/9+GjduTDD43bNB1boc2rp1KxkZGdGOIUmSJEmSdFRs2rSJpk2bfueZal0O1apVCzj8g6pdu3aU00iSJEmSJB0Z+/btIyMjo6z7+C7Vuhz65ypZ7dq1LYckSZIkSVKVE8k1Ol5ILUmSJEmSVI1ZDkmSJEmSJFVjlkOSJEmSJEnVWLW+c0iSJEmSpH8qLS2luLg42jGkiMTFxRETE3NEXstySJIkSZJUrYXDYbZv386XX34Z7ShShaSmptKwYcOILp3+LpZDkiRJkqRq7Z/FUIMGDUhOTv7R/6EtHW3hcJiDBw+yY8cOABo1avSjXs9ySJIkSZJUbZWWlpYVQ/Xq1Yt2HCliSUlJAOzYsYMGDRr8qBUzL6SWJEmSJFVb/7xjKDk5OcpJpIr759+3P/auLMshSZIkSVK15yqZKqMj9fet5ZAkSZIkSVI1ZjkkSZIkSZJUjVkOSZIkSZJUBXTv3p1bb731qLx2ixYtePjhhyM+//nnnxMIBFi6dOlRyfNPOTk5BAIBvvzyy6P6db7Psfp+jxbfrUySJEmSJB1RGRkZbNu2jfr160c7yhE3dOhQvvzyS/72t7+Vfayyf7+WQ5IkSZIkVQNFRUXEx8cfk68VExNDw4YNj8nXOh5U9u/XtTJJkiRJkv5FOBzmYFHJMX+Ew+GIMxYUFDBkyBBq1qxJo0aNmDJlytfOtGjRgnvuuYehQ4eSkpLCtddeC8AHH3zA+eefT1JSEhkZGdx8880UFBSUPW/Hjh3079+fpKQkWrZsyZ///OevvfbKlSvp2rUriYmJdOjQgdmzZxMIBMqmaf59zeqf619z5syhc+fOJCcnc84557Bq1apyr3vPPffQoEEDatWqxbBhw7jjjjs49dRTI/65ALz22mtkZmaSkJBAixYtvvazKSws5Ne//jUZGRkkJCTQpk0bnn76aQBKS0u55ppraNmyJUlJSbRt25b//u//Lnvu+PHjee6555g2bRqBQIBAIEBOTs43rpXNmzePM888k4SEBBo1asQdd9xBSUlJ2ee7d+/OzTffzK9//Wvq1q1Lw4YNGT9+fIW+1yPFySFJkiRJkv7FV8WldBj77jH/ussnXkByfGT/mT5q1Cjmzp3L66+/TsOGDfnNb37D4sWLv1akTJo0iTFjxnDXXXcB8Nlnn3HBBRdw99138/TTT7Nz505+9atf8atf/YpnnnkGOLw2tWnTJrKzs4mPj+fmm29mx44dZa8ZCoUYNGgQzZo148MPP2T//v2MGDEiotx33nknU6ZMIS0tjeuvv56rr76aBQsWAPDnP/+Ze++9l8cff5xzzz2Xl156iSlTptCyZcuIXhtg8eLFXHbZZYwfP56f/exnfPDBB9xwww3Uq1ePoUOHAjBkyBAWLlzII488wimnnML69evZtWtX2ffWtGlTXnnlFerXr88HH3zAddddR6NGjbjssssYOXIkK1asYN++fWU/r7p167J169ZyObZs2cLFF1/M0KFD+dOf/sTKlSu59tprSUxMLFcAPffcc9x22218+OGHLFy4kKFDh3LuuefSu3fviL/nI8FySJIkSZKkSuTAgQM8/fTT/OlPfyorEZ577jmaNm36tbM9e/Zk5MiRZX8eMmQIV1xxRdnF1W3atOGRRx6hW7duPPHEE2zcuJG3336bv//975x11lkAPP3007Rv377sNWbOnMnatWvJyckpW6W69957Iyo07r33Xrp16wbAHXfcQd++fTl06BCJiYk8+uijXHPNNfziF78AYOzYscycOZMDBw5E/LN56KGH6NWrF2PGjAHgxBNPZPny5UyaNImhQ4eyevVqXnnlFWbNmkVWVhYArVq1Knt+XFwcEyZMKPtzy5Yt+eCDD3jllVe47LLLqFmzJklJSRQWFn7nGtnjjz9ORkYGjz32GIFAgHbt2rF161Zuv/12xo4dSzB4eJHr5JNPZty4ccDhvxaPPfYYc+bMsRySJEmSJCmakuJiWD7xgqh83UisXbuWoqIiunTpUvaxunXr0rZt26+d7dy5c7k/L168mDVr1pRbFQuHw4RCIdavX8/q1auJjY0t97x27dqRmppa9udVq1aRkZFRrhw588wzI8p+8sknl/3vRo0aAYfX2Jo1a8aqVau44YYbyp0/88wzyc7Ojui1AVasWMHAgQPLfezcc8/l4YcfprS0lKVLlxITE1NWUH2TqVOn8tRTT7Fhwwa++uorioqKKrzatmLFCrp06UIgECiX48CBA2zevJlmzZoB5X8ecPhn8q9TWsdKhe8c2r9/P7feeivNmzcnKSmJc845h48//rjs8+FwmPHjx9O4cWOSkpLo3r07ubm55V6jsLCQm266ifr161OjRg0GDBjA5s2by53Zs2cPV155JSkpKaSkpHDllVd+7a3pNm7cSP/+/alRowb169fn5ptvpqioqKLfkiRJkiRJZQKBAMnxscf88a9FwnepyN1ENWrUKPfnUCjEf/3Xf7F06dKyx6effkpeXh4nnHBC2Wt/V5ZwOBxx1n8XFxdX9r//+RqhUOhrH/vXr1UR35TtX18jKSnpO5//yiuvMHz4cK6++mpmzpzJ0qVL+cUvflHhruG7cvzrx//15/HPz/3rz+NYqXA5NGzYMGbNmsXzzz/PZ599Rp8+fcjKymLLli0APPjggzz00EM89thjfPzxxzRs2JDevXuzf//+ste49dZbef3113nppZeYP38+Bw4coF+/fpSWlpadueKKK1i6dCnvvPMO77zzDkuXLuXKK68s+3xpaSl9+/aloKCA+fPn89JLL/Haa69FvOcoSZIkSVJl1Lp1a+Li4vj73/9e9rE9e/awevXq733uaaedRm5uLq1bt/7aIz4+nvbt21NSUsKiRYvKnrNq1apywxrt2rVj48aN5Ofnl33sX4dGfqi2bdvy0UcflfvYv+aIRIcOHZg/f365j33wwQeceOKJxMTEcNJJJxEKhZg3b943Pv/999/nnHPO4YYbbqBTp060bt2atWvXljsTHx9frr/4thwffPBBuWLqgw8+oFatWjRp0qRC39OxUKFy6KuvvuK1117jwQcf5Pzzz6d169aMHz+eli1b8sQTTxAOh3n44Ye58847ueSSS+jYsSPPPfccBw8e5MUXXwRg7969PP3000yZMoWsrCw6derECy+8wGeffcbs2bOBw+NX77zzDk899RRdunShS5cu/PGPf+SNN94ou8l85syZLF++nBdeeIFOnTqRlZXFlClT+OMf/8i+ffuO8I/p+LVj/yFe+XgToVDF2lRJkiRJUuVUs2ZNrrnmGkaNGsWcOXNYtmwZQ4cOLbvH5rvcfvvtLFy4kBtvvJGlS5eSl5fH9OnTuemmm4DDBc2FF17Itddey4cffsjixYsZNmxYuYmb3r17c8IJJ3DVVVfxj3/8gwULFnDnnXcC3z1x9H1uuukmnn76aZ577jny8vK45557+Mc//lGh1xwxYgRz5szh7rvvZvXq1Tz33HM89thjZfcutWjRgquuuoqrr76av/3tb6xfv56cnBxeeeUV4HDxtmjRIt59911Wr17NmDFjvlZ8tWjRgn/84x+sWrWKXbt2UVxc/LUcN9xwA5s2beKmm25i5cqVTJs2jXHjxnHbbbdF9NfpWKtQopKSEkpLS0lMTCz38aSkJObPn8/69evZvn07ffr0KftcQkIC3bp144MPPgAO7zcWFxeXO9O4cWM6duxYdmbhwoWkpKSUXX4FcPbZZ5OSklLuTMeOHWncuHHZmQsuuIDCwkIWL178jfkLCwvZt29fuUdld/9bK/n1a//gkic+4B+bv4x2HEmSJEnSMTBp0iTOP/98BgwYQFZWFl27duX000//3uedfPLJzJs3j7y8PM477zw6derEmDFjyu7/AXjmmWfIyMigW7duXHLJJVx33XU0aNCg7PMxMTH87W9/48CBA5xxxhkMGzas7N3Q/r0vqIif//znjB49mpEjR3Laaaexfv16hg4dWqHXPO2003jllVd46aWX6NixI2PHjmXixIll71QG8MQTT/Af//Ef3HDDDbRr145rr72WgoICAK6//nouueQSfvazn3HWWWfxxRdffO0epGuvvZa2bdvSuXNn0tLSyt5t7V81adKEt956i48++ohTTjmF66+/nmuuuabs53S8CYQruMB3zjnnEB8fz4svvkh6ejr/+7//y5AhQ2jTpg3PPPMM5557Llu2bClX2lx33XVs2LCBd999lxdffJFf/OIXFBYWlnvdPn360LJlS5588kl++9vf8uyzz35tJO7EE0/kF7/4BaNHj+a6667j888/Z+bMmeXOJCQk8OyzzzJ48OCv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rVuXWbNmkZWVxa5du0hLS+O9997jvPPOA2D//v3Url2b2bNn06tXr8PhAwFef/11Bg0aFFH+wsJCCgv/7zeJ+/btIyMjw7UySZKqiE827mHstGUs27IPgHYNazFxYEfObFk3yskkSZKOraO2Vta1a1fmzJnD6tWrAfj000+ZP38+F198MUBZ8ZKYmFj2nJiYGOLj45k/f37ZmUAgQEJCQtmZxMREgsFg2Zl69erRvn17/vSnP1FQUEBJSQlPPvkk6enpnH766eUy/epXv6J+/fqcccYZTJ06tdz00b+77777SElJKXtkZGRU5NuXJEnHudOa1WHajV25Z1BHUpLiWLl9P5c9uZBbX1rCjn2Hoh1PkiTpuFShcuj2229n8ODBtGvXjri4ODp16sStt97K4MGDAWjXrh3Nmzdn9OjR7Nmzh6KiIu6//362b9/Otm3bADj77LOpUaMGt99+OwcPHqSgoIBRo0YRCoXKzgQCAWbNmsWSJUuoVasWiYmJ/O53v+Odd94hNTW1LM/dd9/Nq6++yuzZs7n88ssZMWIEv/3tb781/+jRo9m7d2/ZY9OmTRX9eUmSpONcTDDAf57dnLkjuzP4zGYEAvC3pVvpOWUeT72/jmJXzSRJksqpUDn08ssv88ILL/Diiy/yySef8NxzzzF58mSee+45AOLi4njttddYvXo1devWJTk5mZycHC666CJiYmIASEtL49VXX2XGjBnUrFmzbMTptNNOKzsTDoe54YYbaNCgAe+//z4fffQRAwcOpF+/fmUFEsBdd91Fly5dOPXUUxkxYgQTJ05k0qRJ35o/ISGB2rVrl3tIkqSqqW6NeO675CSm3Xgup2SkcqCwhHveXMHF//0+H6zdFe14kiRJx40K3TmUkZHBHXfcwY033lj2sXvuuYcXXniBlStXlju7d+9eioqKSEtL46yzzqJz5878/ve/L3dm165dxMbGkpqaSsOGDRkxYgSjRo1izpw59OnTp9y9RABt2rThmmuu4Y477vjGfAsWLKBr165s376d9PT07/1+fCt7SZKqh1AozKuLN/HAO6vYXVAEQN+TG3FX3/Y0SkmKcjpJkqQj76jdOXTw4EGCwfJPiYmJ+cZ7flJSUkhLSyMvL49FixYxcODAr52pX78+qampZGdns2PHDgYMGFD2dYCvfa1gMPiddwotWbKExMTEcqtn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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plot.get_step_chart([Dredging_site])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ee3c15b2-ab68-4d80-92e3-3a7aad842a6b", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From 0be640d1e72e6a5fdb8f7e6945998a0937c79958 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Fri, 5 Apr 2024 14:24:20 +0200 Subject: [PATCH 089/100] add WID notebook --- notebooks/39_Water_Injection_Dredging.ipynb | 1003 +++++++++++++++++++ 1 file changed, 1003 insertions(+) create mode 100644 notebooks/39_Water_Injection_Dredging.ipynb diff --git a/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb new file mode 100644 index 00000000..21bafda5 --- /dev/null +++ b/notebooks/39_Water_Injection_Dredging.ipynb @@ -0,0 +1,1003 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "e92bbd48-270d-41f1-8073-214607b13652", + "metadata": {}, + "outputs": [], + "source": [ + "# import datetime, time\n", + "import simpy\n", + "import shapely.geometry\n", + "import pandas as pd\n", + "import inspect\n", + "import sys \n", + "import os \n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e9c8d3ea-28e4-4276-a08a-6d823df569ce", + "metadata": {}, + "outputs": [], + "source": [ + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plot as plot\n", + "import openclsim.plugins as plugins\n", + "\n", + "import openclsim.WID as WID" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "877927ec-0040-4d99-a6cd-7bd79ade2df0", + "metadata": {}, + "outputs": [], + "source": [ + "Site = type(\n", + " \"Site\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.ContainerDependentMovable, \n", + " core.HasResource,\n", + " core.WIDProcessor,\n", + " core.Identifiable,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", + "metadata": {}, + "outputs": [], + "source": [ + "location_dredging_site = shapely.geometry.Point(1, 1)\n", + "\n", + "data_dredging_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"dredging location\",\n", + " \"geometry\": location_dredging_site, \n", + " \"capacity\":90000,\n", + " \"level\":90000,\n", + "}\n", + "\n", + "Dredging_site = Site(**data_dredging_site)\n", + "\n", + "data_vessel = {\n", + " \"env\": my_env,\n", + " \"name\": \"WID vessel\",\n", + " \"geometry\": location_dredging_site, \n", + " \"capacity\":1740,\n", + " \"compute_v\": lambda x: 1\n", + "}\n", + "\n", + "WID_vessel = TransportProcessingResource(**data_vessel)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "98fbdcce-4b95-4ed6-aada-584c64cd9472", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", + "metadata": {}, + "outputs": [], + "source": [ + "sub_processes = [\n", + " model.ProduceAmountActivity(\n", + " env=my_env,\n", + " WIDprocessor=WID_vessel,\n", + " destination = WID_vessel,\n", + " origin=Dredging_site,\n", + " name='WID activity',\n", + " registry=registry,\n", + " amount=2,\n", + " duration=5,\n", + " ),\n", + " model.BasicActivity(\n", + " env=my_env,\n", + " name='Basic activity',\n", + " registry=registry,\n", + " duration=1\n", + " )\n", + "]\n", + "\n", + "while_activity = model.WhileActivity(\n", + " env=my_env,\n", + " name='While activity',\n", + " registry=registry,\n", + " sub_processes=sub_processes,\n", + " condition_event=[\n", + " {\"type\":\"container\", \"concept\":Dredging_site,\"state\":\"empty\"}\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", + "metadata": {}, + "outputs": [], + "source": [ + "model.register_processes([while_activity])\n", + "my_env.run(until=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b86e412e-d68c-4041-b687-6379680a6d13", + "metadata": {}, + "outputs": [], + "source": [ + "df_WID = pd.concat(\n", + " [\n", + " plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes])\n", + " for act in sub_processes\n", + " ]\n", + ").sort_values(by=['Timestamp'])\n", + "df_SITE = pd.concat(\n", + " [\n", + " plot.get_log_dataframe(Dredging_site, [while_activity, *sub_processes])\n", + " for act in sub_processes\n", + " ]\n", + ").sort_values(by=['Timestamp'])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "fecee48b-508b-45ac-8b04-494a4e4bea41", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START0.0POINT (1 1)
1WID activity1970-01-01 00:00:05STOP0.0POINT (1 1)
2WID activity1970-01-01 00:00:06START0.0POINT (1 1)
3WID activity1970-01-01 00:00:11STOP0.0POINT (1 1)
4WID activity1970-01-01 00:00:12START0.0POINT (1 1)
5WID activity1970-01-01 00:00:17STOP0.0POINT (1 1)
6WID activity1970-01-01 00:00:18START0.0POINT (1 1)
7WID activity1970-01-01 00:00:23STOP0.0POINT (1 1)
8WID activity1970-01-01 00:00:24START0.0POINT (1 1)
9WID activity1970-01-01 00:00:29STOP0.0POINT (1 1)
10WID activity1970-01-01 00:00:30START0.0POINT (1 1)
11WID activity1970-01-01 00:00:35STOP0.0POINT (1 1)
12WID activity1970-01-01 00:00:36START0.0POINT (1 1)
13WID activity1970-01-01 00:00:41STOP0.0POINT (1 1)
14WID activity1970-01-01 00:00:42START0.0POINT (1 1)
15WID activity1970-01-01 00:00:47STOP0.0POINT (1 1)
16WID activity1970-01-01 00:00:48START0.0POINT (1 1)
17WID activity1970-01-01 00:00:53STOP0.0POINT (1 1)
18WID activity1970-01-01 00:00:54START0.0POINT (1 1)
19WID activity1970-01-01 00:00:59STOP0.0POINT (1 1)
20WID activity1970-01-01 00:01:00START0.0POINT (1 1)
21WID activity1970-01-01 00:01:05STOP0.0POINT (1 1)
22WID activity1970-01-01 00:01:06START0.0POINT (1 1)
23WID activity1970-01-01 00:01:11STOP0.0POINT (1 1)
24WID activity1970-01-01 00:01:12START0.0POINT (1 1)
25WID activity1970-01-01 00:01:17STOP0.0POINT (1 1)
26WID activity1970-01-01 00:01:18START0.0POINT (1 1)
27WID activity1970-01-01 00:01:23STOP0.0POINT (1 1)
28WID activity1970-01-01 00:01:24START0.0POINT (1 1)
29WID activity1970-01-01 00:01:29STOP0.0POINT (1 1)
30WID activity1970-01-01 00:01:30START0.0POINT (1 1)
31WID activity1970-01-01 00:01:35STOP0.0POINT (1 1)
32WID activity1970-01-01 00:01:36START0.0POINT (1 1)
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 WID activity 1970-01-01 00:00:00 START 0.0 \n", + "1 WID activity 1970-01-01 00:00:05 STOP 0.0 \n", + "2 WID activity 1970-01-01 00:00:06 START 0.0 \n", + "3 WID activity 1970-01-01 00:00:11 STOP 0.0 \n", + "4 WID activity 1970-01-01 00:00:12 START 0.0 \n", + "5 WID activity 1970-01-01 00:00:17 STOP 0.0 \n", + "6 WID activity 1970-01-01 00:00:18 START 0.0 \n", + "7 WID activity 1970-01-01 00:00:23 STOP 0.0 \n", + "8 WID activity 1970-01-01 00:00:24 START 0.0 \n", + "9 WID activity 1970-01-01 00:00:29 STOP 0.0 \n", + "10 WID activity 1970-01-01 00:00:30 START 0.0 \n", + "11 WID activity 1970-01-01 00:00:35 STOP 0.0 \n", + "12 WID activity 1970-01-01 00:00:36 START 0.0 \n", + "13 WID activity 1970-01-01 00:00:41 STOP 0.0 \n", + "14 WID activity 1970-01-01 00:00:42 START 0.0 \n", + "15 WID activity 1970-01-01 00:00:47 STOP 0.0 \n", + "16 WID activity 1970-01-01 00:00:48 START 0.0 \n", + "17 WID activity 1970-01-01 00:00:53 STOP 0.0 \n", + "18 WID activity 1970-01-01 00:00:54 START 0.0 \n", + "19 WID activity 1970-01-01 00:00:59 STOP 0.0 \n", + "20 WID activity 1970-01-01 00:01:00 START 0.0 \n", + "21 WID activity 1970-01-01 00:01:05 STOP 0.0 \n", + "22 WID activity 1970-01-01 00:01:06 START 0.0 \n", + "23 WID activity 1970-01-01 00:01:11 STOP 0.0 \n", + "24 WID activity 1970-01-01 00:01:12 START 0.0 \n", + "25 WID activity 1970-01-01 00:01:17 STOP 0.0 \n", + "26 WID activity 1970-01-01 00:01:18 START 0.0 \n", + "27 WID activity 1970-01-01 00:01:23 STOP 0.0 \n", + "28 WID activity 1970-01-01 00:01:24 START 0.0 \n", + "29 WID activity 1970-01-01 00:01:29 STOP 0.0 \n", + "30 WID activity 1970-01-01 00:01:30 START 0.0 \n", + "31 WID activity 1970-01-01 00:01:35 STOP 0.0 \n", + "32 WID activity 1970-01-01 00:01:36 START 0.0 \n", + "\n", + " geometry \n", + "0 POINT (1 1) \n", + "1 POINT (1 1) \n", + "2 POINT (1 1) \n", + "3 POINT (1 1) \n", + "4 POINT (1 1) \n", + "5 POINT (1 1) \n", + "6 POINT (1 1) \n", + "7 POINT (1 1) \n", + "8 POINT (1 1) \n", + "9 POINT (1 1) \n", + "10 POINT (1 1) \n", + "11 POINT (1 1) \n", + "12 POINT (1 1) \n", + "13 POINT (1 1) \n", + "14 POINT (1 1) \n", + "15 POINT (1 1) \n", + "16 POINT (1 1) \n", + "17 POINT (1 1) \n", + "18 POINT (1 1) \n", + "19 POINT (1 1) \n", + "20 POINT (1 1) \n", + "21 POINT (1 1) \n", + "22 POINT (1 1) \n", + "23 POINT (1 1) \n", + "24 POINT (1 1) \n", + "25 POINT (1 1) \n", + "26 POINT (1 1) \n", + "27 POINT (1 1) \n", + "28 POINT (1 1) \n", + "29 POINT (1 1) \n", + "30 POINT (1 1) \n", + "31 POINT (1 1) \n", + "32 POINT (1 1) " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "50eb7960-37a2-4dec-98a3-2095fb1880b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START90000POINT (1 1)
1WID activity1970-01-01 00:00:05STOP89998POINT (1 1)
2WID activity1970-01-01 00:00:06START89998POINT (1 1)
3WID activity1970-01-01 00:00:11STOP89996POINT (1 1)
4WID activity1970-01-01 00:00:12START89996POINT (1 1)
5WID activity1970-01-01 00:00:17STOP89994POINT (1 1)
6WID activity1970-01-01 00:00:18START89994POINT (1 1)
7WID activity1970-01-01 00:00:23STOP89992POINT (1 1)
8WID activity1970-01-01 00:00:24START89992POINT (1 1)
9WID activity1970-01-01 00:00:29STOP89990POINT (1 1)
10WID activity1970-01-01 00:00:30START89990POINT (1 1)
11WID activity1970-01-01 00:00:35STOP89988POINT (1 1)
12WID activity1970-01-01 00:00:36START89988POINT (1 1)
13WID activity1970-01-01 00:00:41STOP89986POINT (1 1)
14WID activity1970-01-01 00:00:42START89986POINT (1 1)
15WID activity1970-01-01 00:00:47STOP89984POINT (1 1)
16WID activity1970-01-01 00:00:48START89984POINT (1 1)
17WID activity1970-01-01 00:00:53STOP89982POINT (1 1)
18WID activity1970-01-01 00:00:54START89982POINT (1 1)
19WID activity1970-01-01 00:00:59STOP89980POINT (1 1)
20WID activity1970-01-01 00:01:00START89980POINT (1 1)
21WID activity1970-01-01 00:01:05STOP89978POINT (1 1)
22WID activity1970-01-01 00:01:06START89978POINT (1 1)
23WID activity1970-01-01 00:01:11STOP89976POINT (1 1)
24WID activity1970-01-01 00:01:12START89976POINT (1 1)
25WID activity1970-01-01 00:01:17STOP89974POINT (1 1)
26WID activity1970-01-01 00:01:18START89974POINT (1 1)
27WID activity1970-01-01 00:01:23STOP89972POINT (1 1)
28WID activity1970-01-01 00:01:24START89972POINT (1 1)
29WID activity1970-01-01 00:01:29STOP89970POINT (1 1)
30WID activity1970-01-01 00:01:30START89970POINT (1 1)
31WID activity1970-01-01 00:01:35STOP89968POINT (1 1)
32WID activity1970-01-01 00:01:36START89968POINT (1 1)
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 WID activity 1970-01-01 00:00:00 START 90000 \n", + "1 WID activity 1970-01-01 00:00:05 STOP 89998 \n", + "2 WID activity 1970-01-01 00:00:06 START 89998 \n", + "3 WID activity 1970-01-01 00:00:11 STOP 89996 \n", + "4 WID activity 1970-01-01 00:00:12 START 89996 \n", + "5 WID activity 1970-01-01 00:00:17 STOP 89994 \n", + "6 WID activity 1970-01-01 00:00:18 START 89994 \n", + "7 WID activity 1970-01-01 00:00:23 STOP 89992 \n", + "8 WID activity 1970-01-01 00:00:24 START 89992 \n", + "9 WID activity 1970-01-01 00:00:29 STOP 89990 \n", + "10 WID activity 1970-01-01 00:00:30 START 89990 \n", + "11 WID activity 1970-01-01 00:00:35 STOP 89988 \n", + "12 WID activity 1970-01-01 00:00:36 START 89988 \n", + "13 WID activity 1970-01-01 00:00:41 STOP 89986 \n", + "14 WID activity 1970-01-01 00:00:42 START 89986 \n", + "15 WID activity 1970-01-01 00:00:47 STOP 89984 \n", + "16 WID activity 1970-01-01 00:00:48 START 89984 \n", + "17 WID activity 1970-01-01 00:00:53 STOP 89982 \n", + "18 WID activity 1970-01-01 00:00:54 START 89982 \n", + "19 WID activity 1970-01-01 00:00:59 STOP 89980 \n", + "20 WID activity 1970-01-01 00:01:00 START 89980 \n", + "21 WID activity 1970-01-01 00:01:05 STOP 89978 \n", + "22 WID activity 1970-01-01 00:01:06 START 89978 \n", + "23 WID activity 1970-01-01 00:01:11 STOP 89976 \n", + "24 WID activity 1970-01-01 00:01:12 START 89976 \n", + "25 WID activity 1970-01-01 00:01:17 STOP 89974 \n", + "26 WID activity 1970-01-01 00:01:18 START 89974 \n", + "27 WID activity 1970-01-01 00:01:23 STOP 89972 \n", + "28 WID activity 1970-01-01 00:01:24 START 89972 \n", + "29 WID activity 1970-01-01 00:01:29 STOP 89970 \n", + "30 WID activity 1970-01-01 00:01:30 START 89970 \n", + "31 WID activity 1970-01-01 00:01:35 STOP 89968 \n", + "32 WID activity 1970-01-01 00:01:36 START 89968 \n", + "\n", + " geometry \n", + "0 POINT (1 1) \n", + "1 POINT (1 1) \n", + "2 POINT (1 1) \n", + "3 POINT (1 1) \n", + "4 POINT (1 1) \n", + "5 POINT (1 1) \n", + "6 POINT (1 1) \n", + "7 POINT (1 1) \n", + "8 POINT (1 1) \n", + "9 POINT (1 1) \n", + "10 POINT (1 1) \n", + "11 POINT (1 1) \n", + "12 POINT (1 1) \n", + "13 POINT (1 1) \n", + "14 POINT (1 1) \n", + "15 POINT (1 1) \n", + "16 POINT (1 1) \n", + "17 POINT (1 1) \n", + "18 POINT (1 1) \n", + "19 POINT (1 1) \n", + "20 POINT (1 1) \n", + "21 POINT (1 1) \n", + "22 POINT (1 1) \n", + "23 POINT (1 1) \n", + "24 POINT (1 1) \n", + "25 POINT (1 1) \n", + "26 POINT (1 1) \n", + "27 POINT (1 1) \n", + "28 POINT (1 1) \n", + "29 POINT (1 1) \n", + "30 POINT (1 1) \n", + "31 POINT (1 1) \n", + "32 POINT (1 1) " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(Dredging_site, [while_activity]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAJGCAYAAADBFeWwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNJ0lEQVR4nOzdd3wV9L3/8dc52WEkjBBWWIKM4EBxoCgr4GBWb63YK1JFr9U6EKhSZap1ANarVrHVq1brddRawMkIQUGqgmAlrDBkE0CQESTrnN8f/Jrb1HWiwCHJ6/l4nMejJN9z8k70YfWdz+d7AuFwOIwkSZIkSZKqpWC0A0iSJEmSJCl6LIckSZIkSZKqMcshSZIkSZKkasxySJIkSZIkqRqzHJIkSZIkSarGLIckSZIkSZKqMcshSZIkSZKkaiw22gGiKRQKsXXrVmrVqkUgEIh2HEmSJEmSpCMiHA6zf/9+GjduTDD43bNB1boc2rp1KxkZGdGOIUmSJEmSdFRs2rSJpk2bfueZal0O1apVCzj8g6pdu3aU00iSJEmSJB0Z+/btIyMjo6z7+C7Vuhz65ypZ7dq1LYckSZIkSVKVE8k1Ol5ILUmSJEmSVI1ZDkmSJEmSJFVjlkOSJEmSJEnVWLW+c0iSJEmSpH8qLS2luLg42jGkiMTFxRETE3NEXstySJIkSZJUrYXDYbZv386XX34Z7ShShaSmptKwYcOILp3+LpZDkiRJkqRq7Z/FUIMGDUhOTv7R/6EtHW3hcJiDBw+yY8cOABo1avSjXs9ySJIkSZJUbZWWlpYVQ/Xq1Yt2HCliSUlJAOzYsYMGDRr8qBUzL6SWJEmSJFVb/7xjKDk5OcpJpIr759+3P/auLMshSZIkSVK15yqZKqMj9fet5ZAkSZIkSVI1ZjkkSZIkSZJUjVkOSZIkSZJUBXTv3p1bb731qLx2ixYtePjhhyM+//nnnxMIBFi6dOlRyfNPOTk5BAIBvvzyy6P6db7Psfp+jxbfrUySJEmSJB1RGRkZbNu2jfr160c7yhE3dOhQvvzyS/72t7+Vfayyf7+WQ5IkSZIkVQNFRUXEx8cfk68VExNDw4YNj8nXOh5U9u/XtTJJkiRJkv5FOBzmYFHJMX+Ew+GIMxYUFDBkyBBq1qxJo0aNmDJlytfOtGjRgnvuuYehQ4eSkpLCtddeC8AHH3zA+eefT1JSEhkZGdx8880UFBSUPW/Hjh3079+fpKQkWrZsyZ///OevvfbKlSvp2rUriYmJdOjQgdmzZxMIBMqmaf59zeqf619z5syhc+fOJCcnc84557Bq1apyr3vPPffQoEEDatWqxbBhw7jjjjs49dRTI/65ALz22mtkZmaSkJBAixYtvvazKSws5Ne//jUZGRkkJCTQpk0bnn76aQBKS0u55ppraNmyJUlJSbRt25b//u//Lnvu+PHjee6555g2bRqBQIBAIEBOTs43rpXNmzePM888k4SEBBo1asQdd9xBSUlJ2ee7d+/OzTffzK9//Wvq1q1Lw4YNGT9+fIW+1yPFySFJkiRJkv7FV8WldBj77jH/ussnXkByfGT/mT5q1Cjmzp3L66+/TsOGDfnNb37D4sWLv1akTJo0iTFjxnDXXXcB8Nlnn3HBBRdw99138/TTT7Nz505+9atf8atf/YpnnnkGOLw2tWnTJrKzs4mPj+fmm29mx44dZa8ZCoUYNGgQzZo148MPP2T//v2MGDEiotx33nknU6ZMIS0tjeuvv56rr76aBQsWAPDnP/+Ze++9l8cff5xzzz2Xl156iSlTptCyZcuIXhtg8eLFXHbZZYwfP56f/exnfPDBB9xwww3Uq1ePoUOHAjBkyBAWLlzII488wimnnML69evZtWtX2ffWtGlTXnnlFerXr88HH3zAddddR6NGjbjssssYOXIkK1asYN++fWU/r7p167J169ZyObZs2cLFF1/M0KFD+dOf/sTKlSu59tprSUxMLFcAPffcc9x22218+OGHLFy4kKFDh3LuuefSu3fviL/nI8FySJIkSZKkSuTAgQM8/fTT/OlPfyorEZ577jmaNm36tbM9e/Zk5MiRZX8eMmQIV1xxRdnF1W3atOGRRx6hW7duPPHEE2zcuJG3336bv//975x11lkAPP3007Rv377sNWbOnMnatWvJyckpW6W69957Iyo07r33Xrp16wbAHXfcQd++fTl06BCJiYk8+uijXHPNNfziF78AYOzYscycOZMDBw5E/LN56KGH6NWrF2PGjAHgxBNPZPny5UyaNImhQ4eyevVqXnnlFWbNmkVWVhYArVq1Knt+XFwcEyZMKPtzy5Yt+eCDD3jllVe47LLLqFmzJklJSRQWFn7nGtnjjz9ORkYGjz32GIFAgHbt2rF161Zuv/12xo4dSzB4eJHr5JNPZty4ccDhvxaPPfYYc+bMsRySJEmSJCmakuJiWD7xgqh83UisXbuWoqIiunTpUvaxunXr0rZt26+d7dy5c7k/L168mDVr1pRbFQuHw4RCIdavX8/q1auJjY0t97x27dqRmppa9udVq1aRkZFRrhw588wzI8p+8sknl/3vRo0aAYfX2Jo1a8aqVau44YYbyp0/88wzyc7Ojui1AVasWMHAgQPLfezcc8/l4YcfprS0lKVLlxITE1NWUH2TqVOn8tRTT7Fhwwa++uorioqKKrzatmLFCrp06UIgECiX48CBA2zevJlmzZoB5X8ecPhn8q9TWsdKhe8c2r9/P7feeivNmzcnKSmJc845h48//rjs8+FwmPHjx9O4cWOSkpLo3r07ubm55V6jsLCQm266ifr161OjRg0GDBjA5s2by53Zs2cPV155JSkpKaSkpHDllVd+7a3pNm7cSP/+/alRowb169fn5ptvpqioqKLfkiRJkiRJZQKBAMnxscf88a9FwnepyN1ENWrUKPfnUCjEf/3Xf7F06dKyx6effkpeXh4nnHBC2Wt/V5ZwOBxx1n8XFxdX9r//+RqhUOhrH/vXr1UR35TtX18jKSnpO5//yiuvMHz4cK6++mpmzpzJ0qVL+cUvflHhruG7cvzrx//15/HPz/3rz+NYqXA5NGzYMGbNmsXzzz/PZ599Rp8+fcjKymLLli0APPjggzz00EM89thjfPzxxzRs2JDevXuzf//+ste49dZbef3113nppZeYP38+Bw4coF+/fpSWlpadueKKK1i6dCnvvPMO77zzDkuXLuXKK68s+3xpaSl9+/aloKCA+fPn89JLL/Haa69FvOcoSZIkSVJl1Lp1a+Li4vj73/9e9rE9e/awevXq733uaaedRm5uLq1bt/7aIz4+nvbt21NSUsKiRYvKnrNq1apywxrt2rVj48aN5Ofnl33sX4dGfqi2bdvy0UcflfvYv+aIRIcOHZg/f365j33wwQeceOKJxMTEcNJJJxEKhZg3b943Pv/999/nnHPO4YYbbqBTp060bt2atWvXljsTHx9frr/4thwffPBBuWLqgw8+oFatWjRp0qRC39OxUKFy6KuvvuK1117jwQcf5Pzzz6d169aMHz+eli1b8sQTTxAOh3n44Ye58847ueSSS+jYsSPPPfccBw8e5MUXXwRg7969PP3000yZMoWsrCw6derECy+8wGeffcbs2bOBw+NX77zzDk899RRdunShS5cu/PGPf+SNN94ou8l85syZLF++nBdeeIFOnTqRlZXFlClT+OMf/8i+ffuO8I/p+LVj/yFe+XgToVDF2lRJkiRJUuVUs2ZNrrnmGkaNGsWcOXNYtmwZQ4cOLbvH5rvcfvvtLFy4kBtvvJGlS5eSl5fH9OnTuemmm4DDBc2FF17Itddey4cffsjixYsZNmxYuYmb3r17c8IJJ3DVVVfxj3/8gwULFnDnnXcC3z1x9H1uuukmnn76aZ577jny8vK45557+Mc//lGh1xwxYgRz5szh7rvvZvXq1Tz33HM89thjZfcutWjRgquuuoqrr76av/3tb6xfv56cnBxeeeUV4HDxtmjRIt59911Wr17NmDFjvlZ8tWjRgn/84x+sWrWKXbt2UVxc/LUcN9xwA5s2beKmm25i5cqVTJs2jXHjxnHbbbdF9NfpWKtQopKSEkpLS0lMTCz38aSkJObPn8/69evZvn07ffr0KftcQkIC3bp144MPPgAO7zcWFxeXO9O4cWM6duxYdmbhwoWkpKSUXX4FcPbZZ5OSklLuTMeOHWncuHHZmQsuuIDCwkIWL178jfkLCwvZt29fuUdld/9bK/n1a//gkic+4B+bv4x2HEmSJEnSMTBp0iTOP/98BgwYQFZWFl27duX000//3uedfPLJzJs3j7y8PM477zw6derEmDFjyu7/AXjmmWfIyMigW7duXHLJJVx33XU0aNCg7PMxMTH87W9/48CBA5xxxhkMGzas7N3Q/r0vqIif//znjB49mpEjR3Laaaexfv16hg4dWqHXPO2003jllVd46aWX6NixI2PHjmXixIll71QG8MQTT/Af//Ef3HDDDbRr145rr72WgoICAK6//nouueQSfvazn3HWWWfxxRdffO0epGuvvZa2bdvSuXNn0tLSyt5t7V81adKEt956i48++ohTTjmF66+/nmuuuabs53S8CYQruMB3zjnnEB8fz4svvkh6ejr/+7//y5AhQ2jTpg3PPPMM5557Llu2bClX2lx33XVs2LCBd999lxdffJFf/OIXFBYWlnvdPn360LJlS5588kl++9vf8uyzz35tJO7EE0/kF7/4BaNHj+a6667j888/Z+bMmeXOJCQk8OyzzzJ48OCv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rVuXWbNmkZWVxa5du0hLS+O9997jvPPOA2D//v3Url2b2bNn06tXr8PhAwFef/11Bg0aFFH+wsJCCgv/7zeJ+/btIyMjw7UySZKqiE827mHstGUs27IPgHYNazFxYEfObFk3yskkSZKOraO2Vta1a1fmzJnD6tWrAfj000+ZP38+F198MUBZ8ZKYmFj2nJiYGOLj45k/f37ZmUAgQEJCQtmZxMREgsFg2Zl69erRvn17/vSnP1FQUEBJSQlPPvkk6enpnH766eUy/epXv6J+/fqcccYZTJ06tdz00b+77777SElJKXtkZGRU5NuXJEnHudOa1WHajV25Z1BHUpLiWLl9P5c9uZBbX1rCjn2Hoh1PkiTpuFShcuj2229n8ODBtGvXjri4ODp16sStt97K4MGDAWjXrh3Nmzdn9OjR7Nmzh6KiIu6//362b9/Otm3bADj77LOpUaMGt99+OwcPHqSgoIBRo0YRCoXKzgQCAWbNmsWSJUuoVasWiYmJ/O53v+Odd94hNTW1LM/dd9/Nq6++yuzZs7n88ssZMWIEv/3tb781/+jRo9m7d2/ZY9OmTRX9eUmSpONcTDDAf57dnLkjuzP4zGYEAvC3pVvpOWUeT72/jmJXzSRJksqpUDn08ssv88ILL/Diiy/yySef8NxzzzF58mSee+45AOLi4njttddYvXo1devWJTk5mZycHC666CJiYmIASEtL49VXX2XGjBnUrFmzbMTptNNOKzsTDoe54YYbaNCgAe+//z4fffQRAwcOpF+/fmUFEsBdd91Fly5dOPXUUxkxYgQTJ05k0qRJ35o/ISGB2rVrl3tIkqSqqW6NeO675CSm3Xgup2SkcqCwhHveXMHF//0+H6zdFe14kiRJx40K3TmUkZHBHXfcwY033lj2sXvuuYcXXniBlStXlju7d+9eioqKSEtL46yzzqJz5878/ve/L3dm165dxMbGkpqaSsOGDRkxYgSjRo1izpw59OnTp9y9RABt2rThmmuu4Y477vjGfAsWLKBr165s376d9PT07/1+fCt7SZKqh1AozKuLN/HAO6vYXVAEQN+TG3FX3/Y0SkmKcjpJkqQj76jdOXTw4EGCwfJPiYmJ+cZ7flJSUkhLSyMvL49FixYxcODAr52pX78+qampZGdns2PHDgYMGFD2dYCvfa1gMPiddwotWbKExMTEcqtn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([Dredging_site])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee3c15b2-ab68-4d80-92e3-3a7aad842a6b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 9865e9f7addd3bac27af4697eb3a91347cd0b481 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Mon, 8 Apr 2024 10:18:32 +0200 Subject: [PATCH 090/100] WID module --- notebooks/39_Water_Injection_Dredging.ipynb | 42 ++- src/openclsim/core/__init__.py | 6 + src/openclsim/core/processor_wid.py | 269 ++++++++++++++++++ src/openclsim/model/__init__.py | 2 + .../model/produce_amount_activity.py | 229 +++++++++++++++ 5 files changed, 534 insertions(+), 14 deletions(-) create mode 100644 src/openclsim/core/processor_wid.py create mode 100644 src/openclsim/model/produce_amount_activity.py diff --git a/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb index 21bafda5..d1ce5002 100644 --- a/notebooks/39_Water_Injection_Dredging.ipynb +++ b/notebooks/39_Water_Injection_Dredging.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 12, "id": "e92bbd48-270d-41f1-8073-214607b13652", "metadata": {}, "outputs": [], @@ -19,10 +19,24 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 13, "id": "e9c8d3ea-28e4-4276-a08a-6d823df569ce", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'produce_amount_activity'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mcore\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodel\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mmodel\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplot\u001b[39;00m\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\__init__.py:4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;124;03m\"\"\"Top-level package for OpenCLSim.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mcore\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodel\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mmodel\u001b[39;00m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplot\u001b[39;00m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplugins\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplugins\u001b[39;00m\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\__init__.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mwhile_activity\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m RepeatActivity, WhileActivity\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mwhile_access_activity\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m WhileAccessActivity, RepeatAccessActivity\n\u001b[1;32m---> 13\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mproduce_amount_activity\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ProduceAmountActivity\n\u001b[0;32m 15\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m 16\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAbstractPluginClass\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 17\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBasicActivity\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mProduceAmountActivity\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 32\u001b[0m ]\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'produce_amount_activity'" + ] + } + ], "source": [ "import openclsim.core as core\n", "import openclsim.model as model\n", @@ -34,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", "metadata": {}, "outputs": [], @@ -45,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "877927ec-0040-4d99-a6cd-7bd79ade2df0", "metadata": {}, "outputs": [], @@ -76,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", "metadata": {}, "outputs": [], @@ -106,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "98fbdcce-4b95-4ed6-aada-584c64cd9472", "metadata": {}, "outputs": [], @@ -116,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", "metadata": {}, "outputs": [], @@ -153,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", "metadata": {}, "outputs": [], @@ -164,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "b86e412e-d68c-4041-b687-6379680a6d13", "metadata": {}, "outputs": [], @@ -185,7 +199,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "fecee48b-508b-45ac-8b04-494a4e4bea41", "metadata": {}, "outputs": [ @@ -568,7 +582,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "50eb7960-37a2-4dec-98a3-2095fb1880b1", "metadata": {}, "outputs": [ @@ -951,7 +965,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", "metadata": {}, "outputs": [ @@ -995,7 +1009,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.9.16" } }, "nbformat": 4, diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 2d5b789f..b91470fe 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -13,6 +13,9 @@ from .priority import HasPriorityResource from .priority import PriorityVessel from .access import HasDredging +from .processor_wid import Processor_wid +from .processor_wid import WIDLoadingFunction +from .processor_wid import WIDUnloadingFunction __all__ = [ "basic", @@ -43,4 +46,7 @@ "HasMaintainedBedLevel", "HasNavigability", "HasDredging", + "Processor_wid", + "WIDLoadingFunction", + "WIDUnloadingFunction", ] diff --git a/src/openclsim/core/processor_wid.py b/src/openclsim/core/processor_wid.py new file mode 100644 index 00000000..6cd0c201 --- /dev/null +++ b/src/openclsim/core/processor_wid.py @@ -0,0 +1,269 @@ +"""Component to process with the simulation objecs.""" +import logging + +from .container import HasContainer +from .log import Log, LogState +from .resource import HasResource +from .simpy_object import SimpyObject + +logger = logging.getLogger(__name__) + + +class Processor_wid(SimpyObject): + """ + Processor class. + + Adds the loading and unloading components and checks for possible downtime. + + If the processor class is used to allow "loading" or "unloading", the mixins + "LoadingFunction" and "UnloadingFunction" should be added as well. + If no functions are used, a subcycle should be used, which is possible with the + mixins "LoadingSubcycle" and "UnloadingSubcycle". + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + """Initialization""" + + def process( + self, + origin, + destination, + shiftamount_fcn, + reserved_amount, + id_="default", + ): + """ + Move content from ship to the site or from the site to the ship. + + This to ensure that the ship's container reaches the desired level. + Yields the time it takes to process. + """ + + assert isinstance(origin, HasContainer) + assert isinstance(destination, HasContainer) + assert isinstance(origin, HasResource) + assert isinstance(destination, HasResource) + assert isinstance(self, Log) + assert isinstance(origin, Log) + assert isinstance(destination, Log) + assert self.is_at(origin) + assert destination.is_at(origin) + + # Log the process for all parts + for location in set([self, origin, destination]): + location.log_entry_v1( + t=location.env.now, + activity_id=self.activity_id, + activity_state=LogState.START, + ) + + duration, amount = shiftamount_fcn(origin, destination) + + # Get the amount from the origin + yield from self.check_possible_shift( + origin=origin, + destination=destination, + amount=amount, + activity="get", + reserved_amount=reserved_amount, + id_=id_, + ) + yield self.env.timeout(duration, value=self.activity_id) + # Put the amount in the destination + # yield from self.check_possible_shift( + # origin=origin, + # destination=destination, + # amount=amount, + # activity="put", + # reserved_amount=reserved_amount, + # id_=id_, + # ) + + # Log the process for all parts + for location in set([self, origin, destination]): + location.log_entry_v1( + t=location.env.now, + activity_id=self.activity_id, + activity_state=LogState.STOP, + ) + + def check_possible_shift( + self, origin, destination, amount, activity, reserved_amount, id_="default" + ): + """ + Check if all the material is available. + + If the amount is not available in the origin or in the destination, + yield a put or get. Time will move forward until the amount can be + retrieved from the origin or placed into the destination. + """ + obj_map = {"get": origin, "put": destination} + obj = obj_map[activity] + method = getattr(obj.container, activity) + + start_time = self.env.now + # Shift amounts in containers + yield method( + amount, + id_, + ) + # Correct the container reservation with the actual amount + yield method( + amount - reserved_amount, + f"{id_}_reservations", + ) + end_time = self.env.now + + # If the amount is not available in the origin, log waiting + if start_time != end_time: + self.log_entry_v1( + t=start_time, + activity_id=self.activity_id, + activity_state=LogState.WAIT_START, + activity_label={ + "type": "subprocess", + "ref": f"waiting {obj.name} content", + }, + ) + self.log_entry_v1( + t=end_time, + activity_id=self.activity_id, + activity_state=LogState.WAIT_STOP, + activity_label={ + "type": "subprocess", + "ref": f"waiting {obj.name} content", + }, + ) + + def determine_processor_amount( + self, + origin, + destination, + amount=None, + id_="default", + ): + """Determine the maximum amount that can be carried.""" + dest_cont = destination.container + destination_max_amount = dest_cont.get_capacity(id_) - dest_cont.get_level(id_) + if destination_max_amount <= 0: + raise ValueError( + "Attempting to shift content to a full destination " + f"(name: {destination.name}, container_id: {id_}, " + f"capacity: {dest_cont.get_capacity(id_)} " + f"level: {dest_cont.get_level(id_)})." + ) + + org_cont = origin.container + origin_max_amount = org_cont.get_level(id_) + if origin_max_amount <= 0: + raise ValueError( + "Attempting to shift content from an empty origin " + f"(name: {origin.name}, container_id: {id_}, " + f"capacity: {org_cont.get_capacity(id_)} " + f"level: {org_cont.get_level(id_)})." + ) + + new_amount = min(origin_max_amount, destination_max_amount) + if amount is not None: + new_amount = min(amount, new_amount) + + return new_amount + + def determine_reservation_amount( + self, origin, destination, amount=None, id_="default" + ): + return ( + amount + if amount + else min( + origin.container.get_capacity(id_), + destination.container.get_capacity(id_), + ) + ) + +class WIDLoadingFunction: + """ + Create a loading function and add it a processor. + + This is a generic and easy to read function, you can create your own + LoadingFunction class and add this as a mixin. + + Parameters + ---------- + loading_rate : amount / second + The rate at which units are loaded per second + load_manoeuvring : seconds + The time it takes to manoeuvre in minutes + """ + + def __init__( + self, loading_rate: float, load_manoeuvring: float = 0, *args, **kwargs + ): + super().__init__(*args, **kwargs) + """Initialization""" + self.loading_rate = loading_rate + self.load_manoeuvring = load_manoeuvring + + def loading(self, origin, destination, amount, id_="default"): + """ + Determine the duration based on an amount that is given as input + with processing. + + The origin an destination are also part of the input, because other + functions might be dependent on the location. + """ + if not hasattr(self.loading_rate, "__call__"): + duration = amount / self.loading_rate + self.load_manoeuvring * 60 + return duration, amount + else: + loading_time = self.loading_rate( + destination.container.get_level(id_), + destination.container.get_level(id_) + amount, + ) + duration = loading_time + self.load_manoeuvring * 60 + return duration, amount + + +class WIDUnloadingFunction: + """ + Create an unloading function and add it a processor. + + This is a generic and easy to read function, you can create your own + LoadingFunction class and add this as a mixin. + + Parameters + ---------- + unloading_rate : volume / second + the rate at which units are loaded per second + unload_manoeuvring : minutes + the time it takes to manoeuvre in minutes + """ + + def __init__( + self, unloading_rate: float, unload_manoeuvring: float = 0, *args, **kwargs + ): + super().__init__(*args, **kwargs) + """Initialization""" + self.unloading_rate = unloading_rate + self.unload_manoeuvring = unload_manoeuvring + + def unloading(self, origin, destination, amount, id_="default"): + """ + Determine the duration based on an amount that is given as input + with processing. + + The origin an destination are also part of the input, because other functions + might be dependent on the location. + """ + + if not hasattr(self.unloading_rate, "__call__"): + duration = amount / self.unloading_rate + self.unload_manoeuvring * 60 + return duration, amount + else: + unloading_time = self.unloading_rate( + origin.container.get_level(id_) + amount, + origin.container.get_level(id_), + ) + duration = unloading_time + self.unload_manoeuvring * 60 + return duration, amount \ No newline at end of file diff --git a/src/openclsim/model/__init__.py b/src/openclsim/model/__init__.py index 754cb3eb..7ddd3e92 100644 --- a/src/openclsim/model/__init__.py +++ b/src/openclsim/model/__init__.py @@ -10,6 +10,7 @@ from .single_run_process import single_run_process from .while_activity import RepeatActivity, WhileActivity from .while_access_activity import WhileAccessActivity, RepeatAccessActivity +from produce_amount_activity import ProduceAmountActivity __all__ = [ "AbstractPluginClass", @@ -27,4 +28,5 @@ "WhileActivity", "WhileAccessActivity", "RepeatAccessActivity", + "ProduceAmountActivity", ] diff --git a/src/openclsim/model/produce_amount_activity.py b/src/openclsim/model/produce_amount_activity.py new file mode 100644 index 00000000..c9fdf439 --- /dev/null +++ b/src/openclsim/model/produce_amount_activity.py @@ -0,0 +1,229 @@ +"""Shift amount activity for the simulation.""" + + +from functools import partial + +import openclsim.core as core + +from .base_activities import GenericActivity + + +class ProduceAmountActivity(GenericActivity): + """ + Activity for shifting material from an origin to a destination. + + It deals with a single origin container, destination container and a single + processor to move substances from the origin to the destination. It will + initiate and suspend processes according to a number of specified conditions. + To run an activity after it has been initialized call env.run() on the Simpy + environment with which it was initialized. + + Parameters + ---------- + origin + container where the source objects are located. + destination + container, where the objects are assigned to + processor + resource responsible to implement the transfer. + amount + the maximum amount of objects to be transfered. + duration + time specified in seconds on how long it takes to transfer the objects. + phase + Either the phase ("loading" or "unloading") or the duration is required. + Use phase with LoadingFunction/UnLoadingFunction + id_ + in case of MultiContainers the id_ of the container, where the objects should + be removed from or assiged to respectively. + start_event + the activity will start as soon as this event is processed + by default will be to start immediately + """ + + def __init__( + self, + WIDprocessor, + origin, + destination, + duration=None, + amount=None, + id_="default", + show=False, + phase=None, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + """Initialization""" + self.origin = origin + self.destination = destination + self.WIDprocessor = WIDprocessor + self.amount = amount + self.duration = duration + self.id_ = id_ + self.print = show + self.phase = phase + + def main_process_function(self, activity_log, env): + """Origin and Destination are of type HasContainer.""" + # concatenate long string + msg = ( + f"Processor {self.WIDprocessor.name} is at: " + f"{self.WIDprocessor.geometry.wkt}." + f"But we expect to shift an amount from the origin location ({self.origin.name}) at: " + f"{self.origin.geometry.wkt}." + ) + assert self.WIDprocessor.is_at(self.origin), msg + assert self.destination.is_at(self.origin) + + yield from self._request_resource( + self.requested_resources, self.destination.resource + ) + + amount = self.WIDprocessor.determine_processor_amount( + self.origin, self.destination, self.amount, self.id_ + ) + + all_available = False + while not all_available and amount > 0: + amount = self.WIDprocessor.determine_processor_amount( + self.origin, self.destination, self.amount, self.id_ + ) + + # yield until enough content and space available in origin and destination + yield env.all_of( + events=[ + self.origin.container.get_container_event( + level=amount, + operator="ge", + id_=self.id_, + ), + self.destination.container.get_container_event( + level=self.destination.container.get_capacity(self.id_) + - amount, + operator="le", + id_=self.id_, + ), + ] + ) + + yield from self._request_resource( + self.requested_resources, self.WIDprocessor.resource + ) + if self.origin.container.get_level(self.id_) < amount: + # someone removed / added content while we were requesting the + # processor, so abort and wait for available + # space/content again + self._release_resource( + self.requested_resources, + self.WIDprocessor.resource, + ) + continue + + yield from self._request_resource( + self.requested_resources, self.origin.resource + ) + if self.origin.container.get_level(self.id_) < amount: + self._release_resource( + self.requested_resources, + self.WIDprocessor.resource, + ) + self._release_resource( + self.requested_resources, + self.origin.resource, + ) + continue + all_available = True + + start_time = env.now + args_data = { + "env": env, + "activity_log": activity_log, + "activity": self, + } + yield from self.pre_process(args_data) + + activity_log.log_entry_v1( + t=env.now, + activity_id=activity_log.id, + activity_state=core.LogState.START, + ) + + start_shift = env.now + yield from self._shift_amount( + env, + amount, + activity_id=activity_log.id, + ) + + activity_log.log_entry_v1( + t=env.now, + activity_id=activity_log.id, + activity_state=core.LogState.STOP, + ) + args_data["start_preprocessing"] = start_time + args_data["start_activity"] = start_shift + yield from self.post_process(**args_data) + + # release the unloader, self.destination and mover requests + self._release_resource( + self.requested_resources, self.destination.resource, self.keep_resources + ) + if self.origin.resource in self.requested_resources: + self._release_resource( + self.requested_resources, self.origin.resource, self.keep_resources + ) + if self.WIDprocessor.resource in self.requested_resources: + self._release_resource( + self.requested_resources, self.WIDprocessor.resource, self.keep_resources + ) + return amount + + + + def _shift_amount( + self, + env, + amount, + activity_id, + ): + self.WIDprocessor.activity_id = activity_id + self.origin.activity_id = activity_id + + shiftamount_fcn = self._get_shiftamount_fcn(amount) + + yield from self.WIDprocessor.process( + origin=self.origin, + destination=self.destination, + shiftamount_fcn=shiftamount_fcn, + reserved_amount=self.reserved_amount, + id_=self.id_, + ) + + def _get_shiftamount_fcn(self, amount): + if self.duration is not None: + return lambda origin, destination: (self.duration, amount) + elif self.phase == "loading": + return partial(self.WIDprocessor.loading, amount=amount) + elif self.phase == "unloading": + return partial(self.WIDprocessor.unloading, amount=amount) + else: + raise RuntimeError( + "Both the phase (loading / unloading) and the duration of the " + "shiftamount activity are undefined. At least one is required!" + ) + + def make_container_reservation(self): + self.reserved_amount = self.WIDprocessor.determine_reservation_amount( + self.origin, self.destination, amount=self.amount, id_=self.id_ + ) + + self.destination.container.put( + amount=self.reserved_amount, + id_=f"{self.id_}_reservations", + ) + self.origin.container.get( + amount=self.reserved_amount, + id_=f"{self.id_}_reservations", + ) From f5c43b7001067a3b28d16b2cd059ca3d7ebc8c5a Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Mon, 8 Apr 2024 10:21:56 +0200 Subject: [PATCH 091/100] updates WID --- notebooks/39_Water_Injection_Dredging.ipynb | 252 +++++++++----------- src/openclsim/model/__init__.py | 2 +- 2 files changed, 119 insertions(+), 135 deletions(-) diff --git a/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb index d1ce5002..eb731287 100644 --- a/notebooks/39_Water_Injection_Dredging.ipynb +++ b/notebooks/39_Water_Injection_Dredging.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "e92bbd48-270d-41f1-8073-214607b13652", "metadata": {}, "outputs": [], @@ -19,36 +19,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "e9c8d3ea-28e4-4276-a08a-6d823df569ce", "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'produce_amount_activity'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mcore\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodel\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mmodel\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplot\u001b[39;00m\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\__init__.py:4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;124;03m\"\"\"Top-level package for OpenCLSim.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mcore\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodel\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mmodel\u001b[39;00m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplot\u001b[39;00m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenclsim\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplugins\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplugins\u001b[39;00m\n", - "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\model\\__init__.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mwhile_activity\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m RepeatActivity, WhileActivity\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mwhile_access_activity\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m WhileAccessActivity, RepeatAccessActivity\n\u001b[1;32m---> 13\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mproduce_amount_activity\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ProduceAmountActivity\n\u001b[0;32m 15\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m 16\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAbstractPluginClass\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 17\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBasicActivity\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mProduceAmountActivity\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 32\u001b[0m ]\n", - "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'produce_amount_activity'" - ] - } - ], + "outputs": [], "source": [ "import openclsim.core as core\n", "import openclsim.model as model\n", "import openclsim.plot as plot\n", - "import openclsim.plugins as plugins\n", - "\n", - "import openclsim.WID as WID" + "import openclsim.plugins as plugins" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", "metadata": {}, "outputs": [], @@ -59,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "877927ec-0040-4d99-a6cd-7bd79ade2df0", "metadata": {}, "outputs": [], @@ -80,7 +64,7 @@ " (\n", " core.ContainerDependentMovable, \n", " core.HasResource,\n", - " core.WIDProcessor,\n", + " core.Processor_wid,\n", " core.Identifiable,\n", " core.Log,\n", " ),\n", @@ -90,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", "metadata": {}, "outputs": [], @@ -120,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "98fbdcce-4b95-4ed6-aada-584c64cd9472", "metadata": {}, "outputs": [], @@ -130,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", "metadata": {}, "outputs": [], @@ -167,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", "metadata": {}, "outputs": [], @@ -178,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "b86e412e-d68c-4041-b687-6379680a6d13", "metadata": {}, "outputs": [], @@ -199,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "fecee48b-508b-45ac-8b04-494a4e4bea41", "metadata": {}, "outputs": [ @@ -227,8 +211,8 @@ " Activity\n", " Timestamp\n", " ActivityState\n", - " container level\n", " geometry\n", + " container level\n", " \n", " \n", " \n", @@ -237,339 +221,339 @@ " WID activity\n", " 1970-01-01 00:00:00\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 1\n", " WID activity\n", " 1970-01-01 00:00:05\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 2\n", " WID activity\n", " 1970-01-01 00:00:06\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 3\n", " WID activity\n", " 1970-01-01 00:00:11\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 4\n", " WID activity\n", " 1970-01-01 00:00:12\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 5\n", " WID activity\n", " 1970-01-01 00:00:17\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 6\n", " WID activity\n", " 1970-01-01 00:00:18\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 7\n", " WID activity\n", " 1970-01-01 00:00:23\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 8\n", " WID activity\n", " 1970-01-01 00:00:24\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 9\n", " WID activity\n", " 1970-01-01 00:00:29\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 10\n", " WID activity\n", " 1970-01-01 00:00:30\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 11\n", " WID activity\n", " 1970-01-01 00:00:35\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 12\n", " WID activity\n", " 1970-01-01 00:00:36\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 13\n", " WID activity\n", " 1970-01-01 00:00:41\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 14\n", " WID activity\n", " 1970-01-01 00:00:42\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 15\n", " WID activity\n", " 1970-01-01 00:00:47\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 16\n", " WID activity\n", " 1970-01-01 00:00:48\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 17\n", " WID activity\n", " 1970-01-01 00:00:53\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 18\n", " WID activity\n", " 1970-01-01 00:00:54\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 19\n", " WID activity\n", " 1970-01-01 00:00:59\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 20\n", " WID activity\n", " 1970-01-01 00:01:00\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 21\n", " WID activity\n", " 1970-01-01 00:01:05\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 22\n", " WID activity\n", " 1970-01-01 00:01:06\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 23\n", " WID activity\n", " 1970-01-01 00:01:11\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 24\n", " WID activity\n", " 1970-01-01 00:01:12\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 25\n", " WID activity\n", " 1970-01-01 00:01:17\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 26\n", " WID activity\n", " 1970-01-01 00:01:18\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 27\n", " WID activity\n", " 1970-01-01 00:01:23\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 28\n", " WID activity\n", " 1970-01-01 00:01:24\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 29\n", " WID activity\n", " 1970-01-01 00:01:29\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 30\n", " WID activity\n", " 1970-01-01 00:01:30\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 31\n", " WID activity\n", " 1970-01-01 00:01:35\n", " STOP\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", " 32\n", " WID activity\n", " 1970-01-01 00:01:36\n", " START\n", - " 0.0\n", " POINT (1 1)\n", + " 0.0\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " Activity Timestamp ActivityState container level \\\n", - "0 WID activity 1970-01-01 00:00:00 START 0.0 \n", - "1 WID activity 1970-01-01 00:00:05 STOP 0.0 \n", - "2 WID activity 1970-01-01 00:00:06 START 0.0 \n", - "3 WID activity 1970-01-01 00:00:11 STOP 0.0 \n", - "4 WID activity 1970-01-01 00:00:12 START 0.0 \n", - "5 WID activity 1970-01-01 00:00:17 STOP 0.0 \n", - "6 WID activity 1970-01-01 00:00:18 START 0.0 \n", - "7 WID activity 1970-01-01 00:00:23 STOP 0.0 \n", - "8 WID activity 1970-01-01 00:00:24 START 0.0 \n", - "9 WID activity 1970-01-01 00:00:29 STOP 0.0 \n", - "10 WID activity 1970-01-01 00:00:30 START 0.0 \n", - "11 WID activity 1970-01-01 00:00:35 STOP 0.0 \n", - "12 WID activity 1970-01-01 00:00:36 START 0.0 \n", - "13 WID activity 1970-01-01 00:00:41 STOP 0.0 \n", - "14 WID activity 1970-01-01 00:00:42 START 0.0 \n", - "15 WID activity 1970-01-01 00:00:47 STOP 0.0 \n", - "16 WID activity 1970-01-01 00:00:48 START 0.0 \n", - "17 WID activity 1970-01-01 00:00:53 STOP 0.0 \n", - "18 WID activity 1970-01-01 00:00:54 START 0.0 \n", - "19 WID activity 1970-01-01 00:00:59 STOP 0.0 \n", - "20 WID activity 1970-01-01 00:01:00 START 0.0 \n", - "21 WID activity 1970-01-01 00:01:05 STOP 0.0 \n", - "22 WID activity 1970-01-01 00:01:06 START 0.0 \n", - "23 WID activity 1970-01-01 00:01:11 STOP 0.0 \n", - "24 WID activity 1970-01-01 00:01:12 START 0.0 \n", - "25 WID activity 1970-01-01 00:01:17 STOP 0.0 \n", - "26 WID activity 1970-01-01 00:01:18 START 0.0 \n", - "27 WID activity 1970-01-01 00:01:23 STOP 0.0 \n", - "28 WID activity 1970-01-01 00:01:24 START 0.0 \n", - "29 WID activity 1970-01-01 00:01:29 STOP 0.0 \n", - "30 WID activity 1970-01-01 00:01:30 START 0.0 \n", - "31 WID activity 1970-01-01 00:01:35 STOP 0.0 \n", - "32 WID activity 1970-01-01 00:01:36 START 0.0 \n", + " Activity Timestamp ActivityState geometry \\\n", + "0 WID activity 1970-01-01 00:00:00 START POINT (1 1) \n", + "1 WID activity 1970-01-01 00:00:05 STOP POINT (1 1) \n", + "2 WID activity 1970-01-01 00:00:06 START POINT (1 1) \n", + "3 WID activity 1970-01-01 00:00:11 STOP POINT (1 1) \n", + "4 WID activity 1970-01-01 00:00:12 START POINT (1 1) \n", + "5 WID activity 1970-01-01 00:00:17 STOP POINT (1 1) \n", + "6 WID activity 1970-01-01 00:00:18 START POINT (1 1) \n", + "7 WID activity 1970-01-01 00:00:23 STOP POINT (1 1) \n", + "8 WID activity 1970-01-01 00:00:24 START POINT (1 1) \n", + "9 WID activity 1970-01-01 00:00:29 STOP POINT (1 1) \n", + "10 WID activity 1970-01-01 00:00:30 START POINT (1 1) \n", + "11 WID activity 1970-01-01 00:00:35 STOP POINT (1 1) \n", + "12 WID activity 1970-01-01 00:00:36 START POINT (1 1) \n", + "13 WID activity 1970-01-01 00:00:41 STOP POINT (1 1) \n", + "14 WID activity 1970-01-01 00:00:42 START POINT (1 1) \n", + "15 WID activity 1970-01-01 00:00:47 STOP POINT (1 1) \n", + "16 WID activity 1970-01-01 00:00:48 START POINT (1 1) \n", + "17 WID activity 1970-01-01 00:00:53 STOP POINT (1 1) \n", + "18 WID activity 1970-01-01 00:00:54 START POINT (1 1) \n", + "19 WID activity 1970-01-01 00:00:59 STOP POINT (1 1) \n", + "20 WID activity 1970-01-01 00:01:00 START POINT (1 1) \n", + "21 WID activity 1970-01-01 00:01:05 STOP POINT (1 1) \n", + "22 WID activity 1970-01-01 00:01:06 START POINT (1 1) \n", + "23 WID activity 1970-01-01 00:01:11 STOP POINT (1 1) \n", + "24 WID activity 1970-01-01 00:01:12 START POINT (1 1) \n", + "25 WID activity 1970-01-01 00:01:17 STOP POINT (1 1) \n", + "26 WID activity 1970-01-01 00:01:18 START POINT (1 1) \n", + "27 WID activity 1970-01-01 00:01:23 STOP POINT (1 1) \n", + "28 WID activity 1970-01-01 00:01:24 START POINT (1 1) \n", + "29 WID activity 1970-01-01 00:01:29 STOP POINT (1 1) \n", + "30 WID activity 1970-01-01 00:01:30 START POINT (1 1) \n", + "31 WID activity 1970-01-01 00:01:35 STOP POINT (1 1) \n", + "32 WID activity 1970-01-01 00:01:36 START POINT (1 1) \n", "\n", - " geometry \n", - "0 POINT (1 1) \n", - "1 POINT (1 1) \n", - "2 POINT (1 1) \n", - "3 POINT (1 1) \n", - "4 POINT (1 1) \n", - "5 POINT (1 1) \n", - "6 POINT (1 1) \n", - "7 POINT (1 1) \n", - "8 POINT (1 1) \n", - "9 POINT (1 1) \n", - "10 POINT (1 1) \n", - "11 POINT (1 1) \n", - "12 POINT (1 1) \n", - "13 POINT (1 1) \n", - "14 POINT (1 1) \n", - "15 POINT (1 1) \n", - "16 POINT (1 1) \n", - "17 POINT (1 1) \n", - "18 POINT (1 1) \n", - "19 POINT (1 1) \n", - "20 POINT (1 1) \n", - "21 POINT (1 1) \n", - "22 POINT (1 1) \n", - "23 POINT (1 1) \n", - "24 POINT (1 1) \n", - "25 POINT (1 1) \n", - "26 POINT (1 1) \n", - "27 POINT (1 1) \n", - "28 POINT (1 1) \n", - "29 POINT (1 1) \n", - "30 POINT (1 1) \n", - "31 POINT (1 1) \n", - "32 POINT (1 1) " + " container level \n", + "0 0.0 \n", + "1 0.0 \n", + "2 0.0 \n", + "3 0.0 \n", + "4 0.0 \n", + "5 0.0 \n", + "6 0.0 \n", + "7 0.0 \n", + "8 0.0 \n", + "9 0.0 \n", + "10 0.0 \n", + "11 0.0 \n", + "12 0.0 \n", + "13 0.0 \n", + "14 0.0 \n", + "15 0.0 \n", + "16 0.0 \n", + "17 0.0 \n", + "18 0.0 \n", + "19 0.0 \n", + "20 0.0 \n", + "21 0.0 \n", + "22 0.0 \n", + "23 0.0 \n", + "24 0.0 \n", + "25 0.0 \n", + "26 0.0 \n", + "27 0.0 \n", + "28 0.0 \n", + "29 0.0 \n", + "30 0.0 \n", + "31 0.0 \n", + "32 0.0 " ] }, "metadata": {}, @@ -582,7 +566,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "50eb7960-37a2-4dec-98a3-2095fb1880b1", "metadata": {}, "outputs": [ @@ -965,13 +949,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAJGCAYAAADBFeWwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNJ0lEQVR4nOzdd3wV9L3/8dc52WEkjBBWWIKM4EBxoCgr4GBWb63YK1JFr9U6EKhSZap1ANarVrHVq1brddRawMkIQUGqgmAlrDBkE0CQESTrnN8f/Jrb1HWiwCHJ6/l4nMejJN9z8k70YfWdz+d7AuFwOIwkSZIkSZKqpWC0A0iSJEmSJCl6LIckSZIkSZKqMcshSZIkSZKkasxySJIkSZIkqRqzHJIkSZIkSarGLIckSZIkSZKqMcshSZIkSZKkaiw22gGiKRQKsXXrVmrVqkUgEIh2HEmSJEmSpCMiHA6zf/9+GjduTDD43bNB1boc2rp1KxkZGdGOIUmSJEmSdFRs2rSJpk2bfueZal0O1apVCzj8g6pdu3aU00iSJEmSJB0Z+/btIyMjo6z7+C7Vuhz65ypZ7dq1LYckSZIkSVKVE8k1Ol5ILUmSJEmSVI1ZDkmSJEmSJFVjlkOSJEmSJEnVWLW+c0iSJEmSpH8qLS2luLg42jGkiMTFxRETE3NEXstySJIkSZJUrYXDYbZv386XX34Z7ShShaSmptKwYcOILp3+LpZDkiRJkqRq7Z/FUIMGDUhOTv7R/6EtHW3hcJiDBw+yY8cOABo1avSjXs9ySJIkSZJUbZWWlpYVQ/Xq1Yt2HCliSUlJAOzYsYMGDRr8qBUzL6SWJEmSJFVb/7xjKDk5OcpJpIr759+3P/auLMshSZIkSVK15yqZKqMj9fet5ZAkSZIkSVI1ZjkkSZIkSZJUjVkOSZIkSZJUBXTv3p1bb731qLx2ixYtePjhhyM+//nnnxMIBFi6dOlRyfNPOTk5BAIBvvzyy6P6db7Psfp+jxbfrUySJEmSJB1RGRkZbNu2jfr160c7yhE3dOhQvvzyS/72t7+Vfayyf7+WQ5IkSZIkVQNFRUXEx8cfk68VExNDw4YNj8nXOh5U9u/XtTJJkiRJkv5FOBzmYFHJMX+Ew+GIMxYUFDBkyBBq1qxJo0aNmDJlytfOtGjRgnvuuYehQ4eSkpLCtddeC8AHH3zA+eefT1JSEhkZGdx8880UFBSUPW/Hjh3079+fpKQkWrZsyZ///OevvfbKlSvp2rUriYmJdOjQgdmzZxMIBMqmaf59zeqf619z5syhc+fOJCcnc84557Bq1apyr3vPPffQoEEDatWqxbBhw7jjjjs49dRTI/65ALz22mtkZmaSkJBAixYtvvazKSws5Ne//jUZGRkkJCTQpk0bnn76aQBKS0u55ppraNmyJUlJSbRt25b//u//Lnvu+PHjee6555g2bRqBQIBAIEBOTs43rpXNmzePM888k4SEBBo1asQdd9xBSUlJ2ee7d+/OzTffzK9//Wvq1q1Lw4YNGT9+fIW+1yPFySFJkiRJkv7FV8WldBj77jH/ussnXkByfGT/mT5q1Cjmzp3L66+/TsOGDfnNb37D4sWLv1akTJo0iTFjxnDXXXcB8Nlnn3HBBRdw99138/TTT7Nz505+9atf8atf/YpnnnkGOLw2tWnTJrKzs4mPj+fmm29mx44dZa8ZCoUYNGgQzZo148MPP2T//v2MGDEiotx33nknU6ZMIS0tjeuvv56rr76aBQsWAPDnP/+Ze++9l8cff5xzzz2Xl156iSlTptCyZcuIXhtg8eLFXHbZZYwfP56f/exnfPDBB9xwww3Uq1ePoUOHAjBkyBAWLlzII488wimnnML69evZtWtX2ffWtGlTXnnlFerXr88HH3zAddddR6NGjbjssssYOXIkK1asYN++fWU/r7p167J169ZyObZs2cLFF1/M0KFD+dOf/sTKlSu59tprSUxMLFcAPffcc9x22218+OGHLFy4kKFDh3LuuefSu3fviL/nI8FySJIkSZKkSuTAgQM8/fTT/OlPfyorEZ577jmaNm36tbM9e/Zk5MiRZX8eMmQIV1xxRdnF1W3atOGRRx6hW7duPPHEE2zcuJG3336bv//975x11lkAPP3007Rv377sNWbOnMnatWvJyckpW6W69957Iyo07r33Xrp16wbAHXfcQd++fTl06BCJiYk8+uijXHPNNfziF78AYOzYscycOZMDBw5E/LN56KGH6NWrF2PGjAHgxBNPZPny5UyaNImhQ4eyevVqXnnlFWbNmkVWVhYArVq1Knt+XFwcEyZMKPtzy5Yt+eCDD3jllVe47LLLqFmzJklJSRQWFn7nGtnjjz9ORkYGjz32GIFAgHbt2rF161Zuv/12xo4dSzB4eJHr5JNPZty4ccDhvxaPPfYYc+bMsRySJEmSJCmakuJiWD7xgqh83UisXbuWoqIiunTpUvaxunXr0rZt26+d7dy5c7k/L168mDVr1pRbFQuHw4RCIdavX8/q1auJjY0t97x27dqRmppa9udVq1aRkZFRrhw588wzI8p+8sknl/3vRo0aAYfX2Jo1a8aqVau44YYbyp0/88wzyc7Ojui1AVasWMHAgQPLfezcc8/l4YcfprS0lKVLlxITE1NWUH2TqVOn8tRTT7Fhwwa++uorioqKKrzatmLFCrp06UIgECiX48CBA2zevJlmzZoB5X8ecPhn8q9TWsdKhe8c2r9/P7feeivNmzcnKSmJc845h48//rjs8+FwmPHjx9O4cWOSkpLo3r07ubm55V6jsLCQm266ifr161OjRg0GDBjA5s2by53Zs2cPV155JSkpKaSkpHDllVd+7a3pNm7cSP/+/alRowb169fn5ptvpqioqKLfkiRJkiRJZQKBAMnxscf88a9FwnepyN1ENWrUKPfnUCjEf/3Xf7F06dKyx6effkpeXh4nnHBC2Wt/V5ZwOBxx1n8XFxdX9r//+RqhUOhrH/vXr1UR35TtX18jKSnpO5//yiuvMHz4cK6++mpmzpzJ0qVL+cUvflHhruG7cvzrx//15/HPz/3rz+NYqXA5NGzYMGbNmsXzzz/PZ599Rp8+fcjKymLLli0APPjggzz00EM89thjfPzxxzRs2JDevXuzf//+ste49dZbef3113nppZeYP38+Bw4coF+/fpSWlpadueKKK1i6dCnvvPMO77zzDkuXLuXKK68s+3xpaSl9+/aloKCA+fPn89JLL/Haa69FvOcoSZIkSVJl1Lp1a+Li4vj73/9e9rE9e/awevXq733uaaedRm5uLq1bt/7aIz4+nvbt21NSUsKiRYvKnrNq1apywxrt2rVj48aN5Ofnl33sX4dGfqi2bdvy0UcflfvYv+aIRIcOHZg/f365j33wwQeceOKJxMTEcNJJJxEKhZg3b943Pv/999/nnHPO4YYbbqBTp060bt2atWvXljsTHx9frr/4thwffPBBuWLqgw8+oFatWjRp0qRC39OxUKFy6KuvvuK1117jwQcf5Pzzz6d169aMHz+eli1b8sQTTxAOh3n44Ye58847ueSSS+jYsSPPPfccBw8e5MUXXwRg7969PP3000yZMoWsrCw6derECy+8wGeffcbs2bOBw+NX77zzDk899RRdunShS5cu/PGPf+SNN94ou8l85syZLF++nBdeeIFOnTqRlZXFlClT+OMf/8i+ffuO8I/p+LVj/yFe+XgToVDF2lRJkiRJUuVUs2ZNrrnmGkaNGsWcOXNYtmwZQ4cOLbvH5rvcfvvtLFy4kBtvvJGlS5eSl5fH9OnTuemmm4DDBc2FF17Itddey4cffsjixYsZNmxYuYmb3r17c8IJJ3DVVVfxj3/8gwULFnDnnXcC3z1x9H1uuukmnn76aZ577jny8vK45557+Mc//lGh1xwxYgRz5szh7rvvZvXq1Tz33HM89thjZfcutWjRgquuuoqrr76av/3tb6xfv56cnBxeeeUV4HDxtmjRIt59911Wr17NmDFjvlZ8tWjRgn/84x+sWrWKXbt2UVxc/LUcN9xwA5s2beKmm25i5cqVTJs2jXHjxnHbbbdF9NfpWKtQopKSEkpLS0lMTCz38aSkJObPn8/69evZvn07ffr0KftcQkIC3bp144MPPgAO7zcWFxeXO9O4cWM6duxYdmbhwoWkpKSUXX4FcPbZZ5OSklLuTMeOHWncuHHZmQsuuIDCwkIWL178jfkLCwvZt29fuUdld/9bK/n1a//gkic+4B+bv4x2HEmSJEnSMTBp0iTOP/98BgwYQFZWFl27duX000//3uedfPLJzJs3j7y8PM477zw6derEmDFjyu7/AXjmmWfIyMigW7duXHLJJVx33XU0aNCg7PMxMTH87W9/48CBA5xxxhkMGzas7N3Q/r0vqIif//znjB49mpEjR3Laaaexfv16hg4dWqHXPO2003jllVd46aWX6NixI2PHjmXixIll71QG8MQTT/Af//Ef3HDDDbRr145rr72WgoICAK6//nouueQSfvazn3HWWWfxxRdffO0epGuvvZa2bdvSuXNn0tLSyt5t7V81adKEt956i48++ohTTjmF66+/nmuuuabs53S8CYQruMB3zjnnEB8fz4svvkh6ejr/+7//y5AhQ2jTpg3PPPMM5557Llu2bClX2lx33XVs2LCBd999lxdffJFf/OIXFBYWlnvdPn360LJlS5588kl++9vf8uyzz35tJO7EE0/kF7/4BaNHj+a6667j888/Z+bMmeXOJCQk8OyzzzJ48OCvZR8/fny5W8f/ae/evdSuXbsiP4bjQjgc5un563l4dh4HCksIBODyM5rx6wvaUqdGfLTjSZIkSdJx79ChQ6xfv56WLVv+qGKjuluwYAFdu3ZlzZo1nHDCCUfsdXv37k3Dhg15/vnnj9hrViXf9ffvvn37SElJiajzqPAs0/PPP084HKZJkyYkJCTwyCOPcMUVVxAT83+3qn/TpUvfNwb272e+6fwPOfOvRo8ezd69e8semzZt+s5Mx7tAIMCw81qRPaIbP+nUhHAY/vejjfSYksMLf99AqatmkiRJkqSj4PXXX2fWrFl8/vnnzJ49m+uuu45zzz33RxVDBw8e5KGHHiI3N5eVK1cybtw4Zs+ezVVXXXUEk+ubVLgcOuGEE5g3bx4HDhxg06ZNfPTRRxQXF9OyZcuyt7Hbvn17uefs2LGD9PR0ABo2bEhRURF79uz5zjP/erHVP+3cubPcmX//Onv27KG4uLjszL9LSEigdu3a5R5VQYPaifzuZ6fyyn91oV3DWnx5sJi7/raMQb9fwCcb93z/C0iSJEmSVAH79+8vW8saOnQoZ5xxBtOmTftRrxkIBHjrrbc477zzOP3005kxYwavvfYaWVlZRyi1vs0PvgWpRo0aNGrUiD179vDuu+8ycODAsoJo1qxZZeeKioqYN28e55xzDgCnn346cXFx5c5s27aNZcuWlZ3p0qULe/fuLXdL+YcffsjevXvLnVm2bBnbtm0rOzNz5kwSEhIi2rOsis5sWZc3burK+P4dqJUYy2db9nLJ4x8w6tVP2XWg8PtfQJIkSZKkCAwZMoS8vDwOHTrE5s2befbZZ6lXr96Pes2kpCRmz57N7t27KSgo4JNPPuGSSy45Qon1XSp859C7775LOBymbdu2rFmzhlGjRpGQkMD8+fOJi4vjgQce4L777uOZZ56hTZs2/Pa3vyUnJ4dVq1ZRq1YtAH75y1/yxhtv8Oyzz1K3bl1GjhzJF198weLFi8vW0y666CK2bt3Kk08+CRy+t6h58+bMmDEDOPxW9qeeeirp6elMmjSJ3bt3M3ToUAYNGsSjjz4a0fdSkf27ymbn/kIeeGclf1m8GYDaibGM6NOWn5/VjNiY4+9mdEmSJEmKBu8cUmUWtTuH9u7dy4033ki7du0YMmQIXbt2ZebMmcTFxQHw61//mltvvZUbbriBzp07s2XLFmbOnFlWDAH87ne/Y9CgQVx22WWce+65JCcnM2PGjHL3Fv35z3/mpJNOok+fPvTp04eTTz653AVUMTExvPnmmyQmJnLuuedy2WWXMWjQICZPnlzRb6lKSquVwOSfnsJrvzyHjk1qs+9QCeOm59Lv0fl8/PnuaMeTJEmSpONKKBSKdgSpwo7U37cVnhyqSqry5NC/Kg2F+d+PNjLp3VXs/aoYgJ90asLoi9rRoLbNuCRJkqTqKxQKkZeXR0xMDGlpacTHx3/vGypJ0RYOhykqKmLnzp2UlpbSpk0bgsHy8z8V6Twsh6pBOfRPuwuKmPTuKl76eCPhMNRMiOXWrDZcdU4L4lw1kyRJklRNFRUVsW3bNg4ePBjtKFKFJCcn06hRI+Lj47/2OcuhCFW3cuifPt30JWOn5/Lppi8BODG9JuMHZHLOCfWjG0ySJEmSoiQcDlNSUkJpaWm0o0gRiYmJITY29lsn3SyHIlRdyyGAUCjMq4s38cA7q9hdUARAv5MbcWff9jRKSYpyOkmSJEmS9GMc1QupVTUEgwF+dkYzskd0Y0iX5gQD8MY/ttFryjyeyFlLUYmXsUmSJEmSVB04OVRNJ4f+3bItexk3PZfFG/YA0Kp+DcYPyOT8E9OinEySJEmSJFWUa2URshwqLxQK8/qSLdz39kp2HSgE4MLMhtzVrz1N6yRHOZ0kSZIkSYqUa2X6QYLBAJee3pTskd34xbktiAkGeCd3O1kPzePROXkcKvZiNkmSJEmSqhonh5wc+lYrt+9j7LRcPlq/G4Dm9ZIZ178DPdulRzmZJEmSJEn6Lq6VRchy6PuFw2Gmf7qVe99cwY79h1fNsto3YGy/TJrVc9VMkiRJkqTjkWtlOmICgQADT21C9sju/Nf5rYgNBpi9YgdZv5vHQ7NWu2omSZIkSVIl5+SQk0MVsmbHfsZNz2XBmi8AaFonibH9OtC7QzqBQCDK6SRJkiRJErhWFjHLoR8mHA7z9rLt3PPGcrbuPQRAtxPTGD8gk5b1a0Q5nSRJkiRJshyKkOXQj3OwqITHstfwx/fXUVwaJj4myLXnt+TGHq1Jjo+NdjxJkiRJkqoty6EIWQ4dGet2HmDCjOXMW70TgMYpidzVrwMXdWzoqpkkSZIkSVFgORQhy6EjJxwOM2t5PhPfWM7mPV8B0LV1fcYP6EDrBrWinE6SJEmSpOrFcihClkNH3qHiUh7PWcvUeWspKgkRGwxwddeW3NyrDTUTXDWTJEmSJOlY8K3sFTWJcTHc1vtEZg/vRlb7BpSEwvzhvXX0mpLDtKVbqMZdpCRJkiRJxyUnh5wcOqqyV+YzYcZyNnxxEICzWtZl4sCOtG3oqpkkSZIkSUeLa2URshw6Ng4Vl/LH99bx+5w1HCoOERMMMKRLc4b3PpHaiXHRjidJkiRJUpXjWpmOK4lxMdzUqw2zb+vGhZkNKQ2FeWbB5/ScnMNfFm8mFKq2/aQkSZIkSVHn5JCTQ8fce6t3Mn5GLut2FgBwevM6TByYSWbjlCgnkyRJkiSpanCtLEKWQ9FTVBLi6fnreTQ7j4NFpQQD8POzmjOyT1tSkl01kyRJkiTpx7AcipDlUPRt2/sV9765gjf+sQ2AujXiOa9NfQIRPLdF/Rpc07Ultby3SJIkSZKkciyHImQ5dPz4YO0uxk3LJW/HgQo9L61WAr+5uB2DTm1CIBBJpSRJkiRJUtVnORQhy6HjS3FpiLc+28bO/YXfe7YkFObljzexftfhe4vOaFGHCQM60qGxfx0lSZIkSbIcipDlUOVWWFLKU++v57HsNXxVfPjeoiFdWjC894mkJLlqJkmSJEmqvnwre1ULCbEx3NijNbNHdKPvSY0IheHZDz6n5+QcXlm0iVCo2vaekiRJkiRFzMkhJ4eqjPl5uxg3fRlrdx5eNevULJWJAzpyUtOUKCeTJEmSJOnYcq0sQpZDVU9RSYhnP1jPf8/Oo6ColEAArjizGSP7tKVOjfhox5MkSZIk6ZhwrUzVVnxskOvOP4E5I7oz8NTGhMPw5w830mNKDi9+uJFSV80kSZIkSSrHySEnh6q0v6/7gnHTclmVvx+Ak5umMGFAJp2a1YlyMkmSJEmSjh7XyiJkOVQ9FJeGeH7hBn43azX7C0sA+FnnDH59YVvq1UyIcjpJkiRJko4818qkfxEXE+Tqri2ZM7Ibl57WFICXF22ix+Qc/rTwc1fNJEmSJEnVmpNDTg5VO4s+383Yabks37YPgA6NajNxYCadW9SNcjJJkiRJko4M18oiZDlUfZWGwrz44QYmvbuKfYcOr5pdcloT7rioHQ1qJUY5nSRJkiRJP45rZdL3iAkGuLJLC+aO7M7lZ2QQCMBfP9lCr8nzeHr+eopLQ9GOKEmSJEnSMeHkkJNDApZu+pKx05bxj817AWibXosJAzM5u1W9KCeTJEmSJKniXCuLkOWQ/lVpKMwrizbx4Dsr2XOwGIABpzTmNxe3p2GKq2aSJEmSpMrDtTLpB4gJBhh8ZjOyR3TnP89uRiAA0z/dSq8pOTw5by1FJa6aSZIkSZKqHieHnBzSt1i2ZS9jpi1jycYvATghrQYTBnSka5v60Q0mSZIkSdL3cK0sQpZD+j6hUJjXPtnM/W+v5IuCIgAuPqkhd/btQJPUpCinkyRJkiTpm7lWJh0hwWCAn3bOIHtkd4ae04JgAN76bDtZU+bx+7lrKCwpjXZESZIkSZJ+FCeHnBxSBazYto9x03L56PPdALSol8y4AZn0aNsgyskkSZIkSfo/rpVFyHJIP0Q4HGba0q3c+9YKdu4vBKB3h3TG9utARt3kKKeTJEmSJMm1MumoCgQCDOrUhOwR3bj2vJbEBgPMWp5P1kPzeHj2ag4Vu2omSZIkSao8nBxyckg/Ul7+fsZOy2Xhui8AyKibxNh+mWS1b0AgEIhyOkmSJElSdeRaWYQsh3SkhMNh3vxsG/e8sYLt+w4B0KNtGuP6Z9Kifo0op5MkSZIkVTeWQxGyHNKRVlBYwmNz1/DU++soLg0THxPkuvNbcWOP1iTFx0Q7niRJkiSpmrAcipDlkI6WtTsPMH56Lu/n7QKgSWoSd/Vtz4UdG7pqJkmSJEk66iyHImQ5pKMpHA7zbm4+d7+xnC1ffgXAeW3qM35AJiek1YxyOkmSJElSVWY5FCHLIR0LXxWV8njOGp6ct46i0hBxMQGu7tqSm3u2oUZCbLTjSZIkSZKqIMuhCFkO6Vj6fFcBE99YTvbKHQA0rJ3Ib/q2p//JjVw1kyRJkiQdUZZDEbIcUjTMWZHPhBnL2bj7IABnt6rL+AGZtI5g1SwQCBATtEiSJEmSJH03y6EIWQ4pWg4Vl/KH99bx+7lrKCwJVei5PdqmMaZfB1p5b5EkSZIk6VtYDkXIckjRtmn3Qe5+Yzkzl+dX6HlxMQGGndeKm3q2Jjnee4skSZIkSeVZDkXIckjHiwOFJZSUfv8E0Y79hfz2rRXkrNoJQKOURO7q24GLT2rovUWSJEmSpDKWQxGyHFJlFA6HmbU8n4lvLGfznq8AOLd1PSYMyKR1g1pRTidJkiRJOh5YDkXIckiV2aHiUp7IWcsT89ZSVBIiNhjg6q4tublXG2omuGomSZIkSdVZRTqP4DHKJOkIS4yLYXjvE5k9vBtZ7dMpCYX5w3vr6Dk5h2lLt1CNe19JkiRJUgU4OeTkkKqIuSt3MH5GLhu+OAjAmS3rMnFgJu0a+ve2JEmSJFU3rpVFyHJIVc2h4lKeen8dj81dw6HiEDHBAFee3ZzhvU8kJSku2vEkSZIkSceIa2VSNZUYF8OverZh9m3duKhjQ0pDYZ794HN6TcnhL4s3EwpV2y5YkiRJkvQtnBxyckhV2HurdzJ+Ri7rdhYAcHrzOkwYkEnHJilRTiZJkiRJOppcK4uQ5ZCqg6KSEP+zYD2PzMnjYFEpwQD8/KzmjOhzIqnJ8dGOJ0mSJEk6Clwrk1QmPjbI9d1OYM6IbvQ/pTGhMDz/9w30nDKPlz7a6KqZJEmSJFVzTg45OaRq5oO1uxg3LZe8HQcAOKVpChMHduSUjNToBpMkSZIkHTFHbXKopKSEu+66i5YtW5KUlESrVq2YOHEioVCo7Ex+fj5Dhw6lcePGJCcnc+GFF5KXl1fuddauXctPfvIT0tLSqF27Npdddhn5+fnlznzyySf07t2b1NRU6tWrx3XXXceBAwfKnQkEAl97TJ06tSLfklTtnHNCfd665Tzu6tuemgmxfLp5L4MeX8Dov/6D3QVF0Y4nSZIkSTrGKlQOPfDAA0ydOpXHHnuMFStW8OCDDzJp0iQeffRRAMLhMIMGDWLdunVMmzaNJUuW0Lx5c7KysigoOHwhbkFBAX369CEQCJCdnc2CBQsoKiqif//+ZSXT1q1bycrKonXr1nz44Ye888475ObmMnTo0K9leuaZZ9i2bVvZ46qrrvqRPxKp6ouLCTLsvFZkj+zGJZ2aEA7D/360iR6Tc3j+7xsoddVMkiRJkqqNCq2V9evXj/T0dJ5++umyj1166aUkJyfz/PPPs3r1atq2bcuyZcvIzMwEoLS0lAYNGvDAAw8wbNgwZs6cyUUXXcSePXvKxpr27NlD3bp1mTVrFllZWfzhD39gzJgxbNu2jWDwcH+1dOlSOnXqRF5eHq1btz4cPhDg9ddfZ9CgQRHlLywspLCwsOzP+/btIyMjw7UyVXsff76bMX9bxsrt+wHIbFybiQM7cnrzOlFOJkmSJEn6IY7aWlnXrl2ZM2cOq1evBuDTTz9l/vz5XHzxxQBlxUtiYmLZc2JiYoiPj2f+/PllZwKBAAkJCWVnEhMTCQaD5c7Ex8eXFUMASUlJAGVn/ulXv/oV9evX54wzzmDq1KnlVtz+3X333UdKSkrZIyMjoyLfvlRlndGiLm/c1JUJAzKplRhL7tZ9XPrEB4x45VN27i/8/heQJEmSJFVaFSqHbr/9dgYPHky7du2Ii4ujU6dO3HrrrQwePBiAdu3a0bx5c0aPHs2ePXsoKiri/vvvZ/v27Wzbtg2As88+mxo1anD77bdz8OBBCgoKGDVqFKFQqOxMz5492b59O5MmTaKoqIg9e/bwm9/8BqDsDMDdd9/Nq6++yuzZs7n88ssZMWIEv/3tb781/+jRo9m7d2/ZY9OmTRX7aUlVWGxMkKvOacHckd25rHNTAF77ZDM9p+TwzIL1lJR+e/EqSZIkSaq8KlQOvfzyy7zwwgu8+OKLfPLJJzz33HNMnjyZ5557DoC4uDhee+01Vq9eTd26dUlOTiYnJ4eLLrqImJgYANLS0nj11VeZMWMGNWvWLBtxOu2008rOZGZm8txzzzFlyhSSk5Np2LAhrVq1Ij09vewMwF133UWXLl049dRTGTFiBBMnTmTSpEnfmj8hIYHatWuXe0gqr37NBB78j1P46w3n0LFJbfYfKmHCjOX0e3Q+H677ItrxJEmSJElHWIXuHMrIyOCOO+7gxhtvLPvYPffcwwsvvMDKlSvLnd27dy9FRUWkpaVx1lln0blzZ37/+9+XO7Nr1y5iY2NJTU2lYcOGjBgxglGjRpU7k5+fT40aNQgEAtSuXZuXXnqJn/70p9+Yb8GCBXTt2pXt27eTnp7+vd+Pb2UvfbfSUJiXPt7IpHdX8eXBYgAGndqY0Re3J7124vc8W5IkSZIULUftzqGDBw+WuwcIDt8p9E33/KSkpJCWlkZeXh6LFi1i4MCBXztTv359UlNTyc7OZseOHQwYMOBrZ9LT06lZsyYvv/wyiYmJ9O7d+1vzLVmyhMTERFJTUyvybUn6FjHBAD8/qzlzR3TnirOaEQjA35ZupefkHP743jqKXTWTJEmSpEovtiKH+/fvz7333kuzZs3IzMxkyZIlPPTQQ1x99dVlZ1599VXS0tJo1qwZn332GbfccguDBg2iT58+ZWeeeeYZ2rdvT1paGgsXLuSWW25h+PDhtG3btuzMY489xjnnnEPNmjWZNWsWo0aN4v777y8rfmbMmMH27dvp0qULSUlJzJ07lzvvvJPrrruu3GXXkn68OjXi+e1PTuLyMzIYOy2XpZu+5N63VvDyok1MHJDJOa3rRzuiJEmSJOkHqtBa2f79+xkzZgyvv/46O3bsoHHjxgwePJixY8cSHx8PwCOPPMKkSZPIz8+nUaNGDBkyhDFjxpR9HuCOO+7g2WefZffu3bRo0YLrr7+e4cOHEwgEys4MGTKEN998kwMHDtCuXTtGjhzJlVdeWfb5d955h9GjR7NmzRpCoRCtWrVi2LBh3HjjjcTGRtZ5uVYmVVwoFOYvizdz/zsr2V1QBEDfkxtx58XtaZyaFOV0kiRJkiSoWOdRoXKoqrEckn64vQeLeWjWKp7/+wZCYUiKi+GmXq25pmtLEmJjvv8FJEmSJElHjeVQhCyHpB8vd+texk3LZdGGPQC0ql+DcQMy6XZiWpSTSZIkSVL1ZTkUIcsh6cgIh8O8vmQLv31rJbsOFALQp0M6Y/p1IKNucpTTSZIkSVL1c9TerUySvkkgEOCS05qSPbIbV5/bkphggJnL88l6aB6PzMnjUHFptCNKkiRJkr6Fk0NODklH3Krt+xk7bRkfrt8NQLO6yYzr34Fe7dOjnEySJEmSqgfXyiJkOSQdPeFwmBn/2Ma9by4nf9/hVbNe7Rowtn8HmterEeV0kiRJklS1uVYmKeoCgQADTmnMnBHd+a9urYgNBpizcge9f/ceD81cxVdFrppJkiRJ0vHAySEnh6RjYs2OA4yfnsv8NbsAaJKaxDVdW5Ic//1ve18rMY6sDg1IiP3+s5IkSZIk18oiZjkkHVvhcJh3lm3n7jeWs3XvoQo9t0W9ZMYNyKRH2wZHKZ0kSZIkVR2WQxGyHJKi42BRCU+9v55/bP4yovOfbt7Lzv2H7y3q3SGdsf06kFE3+SgmlCRJkqTKzXIoQpZDUuWw/1Axj8zJ45kFn1MSCpMQG+SX3U/g+m4nkBjnqpkkSZIk/TvLoQhZDkmVS17+fsZOy2Xhui8AyKibxNh+mWS1b0AgEIhyOkmSJEk6flgORchySKp8wuEwb362jXveWMH2fYfvLerRNo1x/TNpUb9GlNNJkiRJ0vHBcihClkNS5VVQWMJjc9fw1PvrKC4NEx8T5LrzW3Fjj9YkRfAOaJIkSZJUlVkORchySKr81u48wPjpubyftwuAJqlJ3NW3PRd2bOiqmSRJkqRqy3IoQpZDUtUQDod5Nzefu99YzpYvvwLgvDb1Gdc/k9YNakY5nSRJkiQde5ZDEbIckqqWr4pKeSJnDVPfW0dRSYi4mABXd23JTT3bUDMhNtrxJEmSJOmYqUjnETxGmSTpqEuKj+G2Pm2ZNfx8erZrQHFpmCfnraPXlBymf7qVatyFS5IkSdK3cnLIySGpypqzIp8JM5azcfdBAM5uVZcJAzrStmGtKCeTJEmSpKPLtbIIWQ5JVd+h4lL+8N46fj93DYUlIWKCAYae04JbstpQOzEu2vEkSZIk6ahwrUyS/r/EuBhu7tWG2bd144LMdEpDYZ6ev56ek+fx1082u2omSZIkqdpzcsjJIalambd6J+On57J+VwEAnZvXYeLAjnRo7D8DJEmSJFUdrpVFyHJIqp4KS0p5ev56Hp2zhq+KSwkG4Mqzm3Nb77akJLtqJkmSJKnyc61Mkr5DQmwMN3RvzZwR3eh7ciNCYXhu4QZ6TsnhlY83EQpV285ckiRJUjXk5JCTQ1K1t2DNLsZNz2XNjgMAnJqRysSBmZzcNDW6wSRJkiTpB3KtLEKWQ5L+qbg0xLMLPufh2aspKColEIDBZzZjVJ+21KkRH+14kiRJklQhrpVJUgXFxQS59vxWZI/szsBTGxMOw4sfbqTHlBz+/OEGSl01kyRJklRFOTnk5JCkb/Dhui8YNz2Xldv3A3BSkxQmDMzktGZ1opxMkiRJkr6fa2URshyS9F1KSkM8//cNPDRzNfsLSwC4rHNTfn1hO+rXTIhyOkmSJEn6dq6VSdIREBsT5BfntiR7ZHf+4/SmALyyaDM9J+fw3AefU1IainJCSZIkSfrxnBxyckhShBZv2M3Yabnkbt0HQPtGtZk4MJMzWtSNcjJJkiRJKs+1sghZDkmqqNJQmBc/2sjkd1ex96tiAC7p1IQ7LmpHg9qJUU4nSZIkSYe5ViZJR0lMMMCVZzdn7sjuDD4zg0AA/rpkCz2nzOOp99dR7KqZJEmSpErGySEnhyT9CEs3fcm4acv4dPNeAE5Mr8mEAR3pckK9KCeTJEmSVJ25VhYhyyFJR0IoFOaVRZt44J2V7Dl4eNWs/ymNufPi9jRMcdVMkiRJ0rHnWpkkHUPBYIDLz2zG3JHdufLs5gQDMOPTrfScksPUeWspKnHVTJIkSdLxy8khJ4ckHWHLtuxl7LRlfLLxSwBapdVgwoBMzmuTFt1gkiRJkqoN18oiZDkk6WgJhcL8dckW7n97BbsOFAFwUceG3NWvA01Sk6KcTpIkSVJVZzkUIcshSUfb3q+KeXj2av60cAOloTCJcUEyG6cQiOC5bdJrcWtWG9Jre2+RJEmSpIqxHIqQ5ZCkY2XFtn2Mm57LR+t3V+h5NeJjuDXrRIae24K4GK+JkyRJkhQZy6EIWQ5JOpbC4TAfrd/NnoNF33u2sCTEMws+Z+mmLwFo3aAmEwZkcm7r+kc5pSRJkqSqwHIoQpZDko5noVCYvyzezP3vrGR3weFCqe9Jjbizb3sae2+RJEmSpO/gW9lLUhUQDAa47IwM5o7ozlVdmhMMwJufbaPXlHk8nrOGwpLSaEeUJEmSVAU4OeTkkKRKInfrXsZNy2XRhj0AtKpfg3EDMul2YlqUk0mSJEk63rhWFiHLIUmVTTgc5vUlW/jtWyvZdaAQgD4d0hnTrwMZdZOjnE6SJEnS8cK1MkmqogKBAJec1pTskd24pmtLYoIBZi7PJ+uheTwyJ49Dxa6aSZIkSaoYJ4ecHJJUia3avp+x05bx4frdADSrm8y4/h3o1T49yskkSZIkRZNrZRGyHJJUFYTDYWb8Yxv3vrmc/H2HV816tWvA2P4daF6vRpTTSZIkSYoG18okqRoJBAIMOKUx2SO681/dWhEbDDBn5Q56/+49Hpq5iq+KXDWTJEmS9O2cHHJySFIVs2bHAcZPz2X+ml0ANElNYky/DlyQmU4gEIhyOkmSJEnHgmtlEbIcklRVhcNh3lm2nbvfWM7WvYcAOK9NfSYMyKRVWs0op5MkSZJ0tFkORchySFJVd7CohMfnruUP762jqDREXEyAYee14lc9WlMjITba8SRJkiQdJZZDEbIcklRdrN9VwIQZueSs2glAo5RE7uzbnr4nNXLVTJIkSaqCLIciZDkkqToJh8PMXrGDiW/ksmn3VwCcc0I9JgzIpE16rSinkyRJknQkWQ5FyHJIUnV0qLiUqfPW8kTOWgpLQsQGAww9pwW3ZLWhVmJctONJkiRJOgJ8K3tJ0rdKjIvh1qwTmX1bN3p3SKckFOap+evpNWUef1uyhWr8OwNJkiSpWnJyyMkhSdXc3FU7mDA9l8+/OAjAmS3qMmFgJu0b+c9FSZIkqbJyrSxClkOSdFhhSSlPvb+eR7PzOFQcIiYY4MqzmzO894mkJLlqJkmSJFU2rpVJkiokITaGG3u0Zs6I7lx8UkNKQ2Ge/eBzek3J4dVFmwiFqu3vESRJkqQqz8khJ4ck6Wvez9vJuOm5rNtZAMBpzVKZOLAjHZukRDmZJEmSpEi4VhYhyyFJ+nZFJSGeWbCe/56Tx8GiUgIBuOLMZoy6oC2pyfHRjidJkiTpO7hWJkn60eJjg/xXtxPIHtGdAac0JhyGP3+4kR6Tc/jfjzZS6qqZJEmSVCU4OeTkkCRFZOHaLxg3fRmr8w8AcHLTFCYO7MipGanRDSZJkiTpa1wri5DlkCRVTHFpiD8t3MDDs1azv7CEQAB+1jmDURe0pV7NhGjHkyRJkvT/uVYmSToq4mKCXNO1JXNGduOS05oQDsNLH2+ix+Qc/rTwc1fNJEmSpErIySEnhyTpB1v0+W7GTMtlxbZ9AHRoVJu7B2VyevO6UU4mSZIkVW9HbXKopKSEu+66i5YtW5KUlESrVq2YOHEioVCo7Ex+fj5Dhw6lcePGJCcnc+GFF5KXl1fuddauXctPfvIT0tLSqF27Npdddhn5+fnlznzyySf07t2b1NRU6tWrx3XXXceBAwfKndm4cSP9+/enRo0a1K9fn5tvvpmioqKKfEuSpB+hc4u6zPjVuUwcmEntxFiWb9vHpU8sZMQrn7Jzf2G040mSJEmKQIXKoQceeICpU6fy2GOPsWLFCh588EEmTZrEo48+CkA4HGbQoEGsW7eOadOmsWTJEpo3b05WVhYFBQUAFBQU0KdPHwKBANnZ2SxYsICioiL69+9fVjJt3bqVrKwsWrduzYcffsg777xDbm4uQ4cOLctSWlpK3759KSgoYP78+bz00ku89tprjBgx4gj9aCRJkYiNCTKkSwvmjuzOzzpnAPDaJ5vpOTmH/5m/npLS0Pe8giRJkqRoqtBaWb9+/UhPT+fpp58u+9ill15KcnIyzz//PKtXr6Zt27YsW7aMzMxM4HCJ06BBAx544AGGDRvGzJkzueiii9izZ0/ZWNOePXuoW7cus2bNIisriz/84Q+MGTOGbdu2EQwe7q+WLl1Kp06dyMvLo3Xr1rz99tv069ePTZs20bhxYwBeeuklhg4dyo4dOyJaE3OtTJKOvCUb9zB2Wi6fbdkLQNv0Wvymb3ua103+3ufGBAM0rZNEIBA42jElSZKkKq0inUdsRV64a9euTJ06ldWrV3PiiSfy6aefMn/+fB5++GEACgsPrxAkJiaWPScmJob4+Hjmz5/PsGHDKCwsJBAIkJDwf+9qk5iYSDAYZP78+WRlZVFYWEh8fHxZMQSQlJQEwPz582ndujULFy6kY8eOZcUQwAUXXEBhYSGLFy+mR48eX8tfWFhYlhEO/6AkSUdWp2Z1+NuN5/Lyx5t48N2VrMrfz1X/81HEzz+pSQoTBmZyWrM6RzGlJEmSpH+q0FrZ7bffzuDBg2nXrh1xcXF06tSJW2+9lcGDBwPQrl07mjdvzujRo9mzZw9FRUXcf//9bN++nW3btgFw9tlnU6NGDW6//XYOHjxIQUEBo0aNIhQKlZ3p2bMn27dvZ9KkSRQVFbFnzx5+85vfAJSd2b59O+np6eXy1alTh/j4eLZv3/6N+e+77z5SUlLKHhkZGRX59iVJEYoJBrjirGbMHdGd/zy7GanJcdRMiP3eR2wwwGdb9nLJ4x8w6tVP2XXAe4skSZKko61Ck0Mvv/wyL7zwAi+++CKZmZksXbqUW2+9lcaNG3PVVVcRFxfHa6+9xjXXXEPdunWJiYkhKyuLiy66qOw10tLSePXVV/nlL3/JI488QjAYZPDgwZx22mnExMQAkJmZyXPPPcdtt93G6NGjiYmJ4eabbyY9Pb3sDPCNawfhcPhb1xFGjx7NbbfdVvbnffv2WRBJ0lFUp0Y89ww6iXsGnRTR+Z37C3ngnZX8ZfFmXl28mXdztzOiT1t+flYzYmMq9PsMSZIkSRGqUDk0atQo7rjjDi6//HIATjrpJDZs2MB9993HVVddBcDpp5/O0qVL2bt3L0VFRaSlpXHWWWfRuXPnstfp06cPa9euZdeuXcTGxpKamkrDhg1p2bJl2ZkrrriCK664gvz8fGrUqEEgEOChhx4qO9OwYUM+/PDDcvn27NlDcXHx1yaK/ikhIaHcOpsk6fiSViuByT89hcFnZjB2Wi65W/cxbnouL328iYkDMzmjRd1oR5QkSZKqnAr9GvbgwYPl7gGCw3cK/etb2f9TSkoKaWlp5OXlsWjRIgYOHPi1M/Xr1yc1NZXs7Gx27NjBgAEDvnYmPT2dmjVr8vLLL5OYmEjv3r0B6NKlC8uWLStbMwOYOXMmCQkJnH766RX5tiRJx5nTm9dl+q+6cvegjqQkxbFi2z5+OnUhw19eyo59h6IdT5IkSapSKjQ51L9/f+69916aNWtGZmYmS5Ys4aGHHuLqq68uO/Pqq6+SlpZGs2bN+Oyzz7jlllsYNGgQffr0KTvzzDPP0L59e9LS0li4cCG33HILw4cPp23btmVnHnvsMc455xxq1qzJrFmzGDVqFPfffz+pqanA4emjDh06cOWVVzJp0iR2797NyJEjufbaa33nMUmqAmKCAa48uzl9T2rEpHdX8tLHm3h9yRZmLc/n1qw2XHVOC+JcNZMkSZJ+tAq9lf3+/fsZM2YMr7/+Ojt27KBx48YMHjyYsWPHEh8fD8AjjzzCpEmTyM/Pp1GjRgwZMoQxY8aUfR7gjjvu4Nlnn2X37t20aNGC66+/nuHDh5e7K2jIkCG8+eabHDhwgHbt2jFy5EiuvPLKcnk2btzIDTfcQHZ2NklJSVxxxRVMnjw54tUx38pekiqPTzd9ydhpy/h0814ATkyvyYQBHelyQr0oJ5MkSZKOPxXpPCpUDlU1lkOSVLmEQmFeWbSJB95ZyZ6DxQD0P6Uxv7m4HY1SkqKcTpIkSTp+VKTzcB5fklRpBIMBLj+zGXNHdufKs5sTDMCMT7fSa8o8ps5bS1HJ1+/AkyRJkvTdnBxyckiSKq1lW/YydtoyPtn4JQCt0mowYUAm57VJi24wSZIkKcpcK4uQ5ZAkVX6hUJi/LtnC/W+vYNeBIgAuzGzImP4daJLqqpkkSZKqJ9fKJEnVRjAY4D9Ob8qcEd35xbktiAkGeCd3O72m5PBYdh6FJaXRjihJkiQd15wccnJIkqqUFdv2MW56Lh+t3w1Ai3rJjOufSY92DaKcTJIkSTp2XCuLkOWQJFVN4XCY6Z9u5d43V7BjfyEAWe0bMLZfJs3qJUc5nSRJknT0uVYmSarWAoEAA09twpwR3bju/FbEBgPMXrGDrN/N43ezVnOo2FUzSZIk6Z+cHHJySJKqvLz8/YybnssHa78AoGmdJMb260DvDukEAoEop5MkSZKOPNfKImQ5JEnVRzgc5q3PtnPPm8vZtvcQAN3bpjGufyYt69eIcjpJkiTpyLIcipDlkCRVPweLSngsew1/fH8dxaVh4mOCXHt+S27s0Zrk+Nhox5MkSZKOCMuhCFkOSVL1tW7nAcbPWM57q3cC0Dglkbv6deCijg1dNZMkSVKlZzkUIcshSarewuEwM5fnM3HGcrZ8+RUAXVvXZ/yADrRuUCvK6SRJkqQfznIoQpZDkiSAr4pKeWLeWqbOW0tRSYjYYIBrurbkpl5tqJngqpkkSZIqH8uhCFkOSZL+1YYvCrj7jeXMXrEDgPTaCfzm4vYMOKWxq2aSJEmqVCyHImQ5JEn6Jtkr8xk/fTkbdx8E4KyWdZk4sCNtG7pqJkmSpMrBcihClkOSpG9zqLiUP763jt/nrOFQcYiYYICrurTg1t5tqJ0YF+14kiRJ0neqSOcRPEaZJEmqVBLjYripVxtm39aNCzLTKQ2F+Z8F6+k5eR6vLd5MNf7diiRJkqoYJ4ecHJIkRWDe6p1MmJ7Lul0FAHRuXocJAzPJbJwS5WSSJEnS17lWFiHLIUlSRRSVhHh6/noezc7jYFEpwQD859nNGdG7LSnJrppJkiTp+OFamSRJR0F8bJBfdj+BOSO60e/kRoTC8KeFG+gxJYeXP95IKFRtf98iSZKkSszJISeHJEk/0AdrdjFuei55Ow4AcEpGKncPzOTkpqnRDSZJkqRqz7WyCFkOSZJ+rOLSEM998DkPz87jQGEJgQBcfkYzfn1BW+rUiI92PEmSJFVTlkMRshySJB0pO/Yd4r63V/L6ki0ApCbH8dPTm5IQG/O9z01NjuOnnTNISfLeIkmSJB0ZlkMRshySJB1pH63fzdhpy1i5fX+FnlevRjy3X9SO/zitKcFg4CilkyRJUnVhORQhyyFJ0tFQUhritU82s2JbZAXR+3k7WbuzAIBOzVK5e2BHOjZJOZoRJUmSVMVZDkXIckiSdDwoKgnxzIL1/PecPA4WlRIIwBVnNmPUBW1JTfbeIkmSJFWcb2UvSVIlEh8b5L+6nUD2iO4MOKUx4TD8+cON9Jicw4sfbqQ0VG1/jyNJkqRjwMkhJ4ckSceZhWu/YNz0ZazOPwDAyU1TmDiwI6dmpEY3mCRJkioN18oiZDkkSTpeFZeG+NPCDTw8azX7C0sIBOBnnTMYdUFb6tVMiHY8SZIkHedcK5MkqZKLiwlyTdeWzBnZjUtOa0I4DC99vIkek3P408LPXTWTJEnSEePkkJNDkqRKYNHnuxk7LZfl2/YB0KFRbe4elMnpzetGOZkkSZKOR66VRchySJJUmZSGwvz5ww1MfncV+w6VAHDJaU0YfVF70mq5aiZJkqT/41qZJElVUEwwwJAuLZg7sjs/65wBwF8/2ULPyTn8z/z1lJSGopxQkiRJlZGTQ04OSZIqqaWbvmTstGX8Y/NeANqm12LCwEzOblUvyskkSZIUba6VRchySJJU2ZWGwrz88SYefHclXx4sBmDAKY25s2970msnRjmdJEmSosW1MkmSqomYYIArzmrG3BHd+flZzQgEYPqnW+k5OYcn562lqMRVM0mSJH03J4ecHJIkVSGfbd7LmGnLWLrpSwBOSKvBxIEdObd1/egGkyRJ0jHlWlmELIckSVVRKBTmL59s5oG3V/JFQREAfU9qxJ1929M4NSnK6SRJknQsuFYmSVI1FgwGuKxzBtkjuzP0nBYEA/DmZ9voNWUev5+7hsKS0mhHlCRJ0nHEySEnhyRJVdzyrfsYN30ZH3++B4CW9Wswrn8HurdtEOVkkiRJOlpcK4uQ5ZAkqboIh8P8bekWfvvWSnbuLwSgd4d0xvbrQEbd5CinkyRJ0pHmWpkkSSonEAjwk05NyR7RjWFdWxITDDBreT5ZD83jv2fncajYVTNJkqTqyskhJ4ckSdXQ6vz9jJuWy8J1XwCQUTeJcf0yyeqQHuVkkiRJOhJcK4uQ5ZAkqToLh8O88Y9t3PvmCrbvOwRAz3YNGNuvAy3q14hyOkmSJP0YlkMRshySJAkKCkt4NHsNT89fR3FpmPiYINed34obe7QmKT4m2vEkSZL0A1gORchySJKk/7N25wHGT8/l/bxdADRJTWJMv/ZckNmQQCAQ5XSSJEmqCMuhCFkOSZJUXjgc5t3c7dz9xgq2fPkVAOe1qc/4AZmckFYzyukkSZIUKcuhCFkOSZL0zb4qKuXxnDU8OW8dRaUh4mICXNO1FTf1bE2NhNhox5MkSdL38K3sJUnSj5IUH8OIPm2ZOfx8erRNo7g0zNR5a+k1ZR4zPt1KNf7dkiRJUpXj5JCTQ5Ikfa/Zy/OZ8EYum3YfXjXr0qoeEwZmcmJ6rSgnkyRJ0jdxrSxClkOSJEXuUHEpT85bx+M5aygsCREbDDD0nBbcktWGWolx0Y4nSZKkf+FamSRJOuIS42K4JasNs2/rRp8O6ZSEwjw1fz09p8zj9SWbXTWTJEmqpJwccnJIkqQfJGfVDsZPz+XzLw4CcEaLOkwY0JEOjf3/VEmSpGhzrSxClkOSJP04hSWlPPX+eh7LXsNXxaUEA9CgVmJEz81sXJvRF7ejdQPvLZIkSTrSLIciZDkkSdKRseXLr7j3zeW89dn2Cj0vNhjg6q4tublXG2omxB6ldJIkSdWP5VCELIckSTqyNn5xkH2Hir/33KHiUqbOW8vsFTsAaFArgTv7tmfAKY0JBAJHO6YkSVKVZzkUIcshSZKiK3tlPhNmLGfD/7+36MyWdZk4MJN2Df3/ZUmSpB/DcihClkOSJEXfoeJSnnp/HY/NXcOh4hAxwQBDujRneO8TqZ0YF+14kiRJlZJvZS9JkiqNxLgYftWzDbNv68aFmQ0pDYV5ZsHn9Jycw18WbyYUqra/x5IkSTomnBxyckiSpOPKe6t3Mn5GLut2FgBwevM6TByYSWbjlCgnkyRJqjxcK4uQ5ZAkScenopIQT89fz6PZeRwsKiUYgJ+f1ZyRfdqSkuyqmSRJ0vdxrUySJFVq8bFBftn9BOaM6Ea/kxsRCsPzf99Ajyk5vPTRRlfNJEmSjiAnh5wckiTpuPfB2l2Mm5ZL3o4DAJySkcrdAzM5uWlqdINJkiQdp1wri5DlkCRJlUdxaYjnPvich2fncaCwhEAALj8jg1EXtKNujfhox5MkSTquuFYmSZKqnLiYIMPOa0X2iG78pFMTwmH434820WNyDs//fQOlrppJkiT9IE4OOTkkSVKl9NH63YydtoyV2/cD0LFJbSYM6MjpzetEOZkkSVL0HbXJoZKSEu666y5atmxJUlISrVq1YuLEiYRCobIz+fn5DB06lMaNG5OcnMyFF15IXl5euddZu3YtP/nJT0hLS6N27dpcdtll5OfnlzuzevVqBg4cSP369alduzbnnnsuc+fOLXcmEAh87TF16tSKfEuSJKmSOrNlXd64qSsTBmRSKzGWZVv2cekTHzDy1U/ZdaAw2vEkSZIqjQqVQw888ABTp07lscceY8WKFTz44INMmjSJRx99FIBwOMygQYNYt24d06ZNY8mSJTRv3pysrCwKCgoAKCgooE+fPgQCAbKzs1mwYAFFRUX079+/XMnUt29fSkpKyM7OZvHixZx66qn069eP7du3l8v0zDPPsG3btrLHVVdd9WN/JpIkqZKIjQly1TktmDuyOz89vSkAf1m8mR6Tc3h2wXpKSkPf8wqSJEmq0FpZv379SE9P5+mnny772KWXXkpycjLPP/88q1evpm3btixbtozMzEwASktLadCgAQ888ADDhg1j5syZXHTRRezZs6dsrGnPnj3UrVuXWbNmkZWVxa5du0hLS+O9997jvPPOA2D//v3Url2b2bNn06tXr8PhAwFef/11Bg0aFFH+wsJCCgv/7zeJ+/btIyMjw7UySZKqiE827mHstGUs27IPgHYNazFxYEfObFk3yskkSZKOraO2Vta1a1fmzJnD6tWrAfj000+ZP38+F198MUBZ8ZKYmFj2nJiYGOLj45k/f37ZmUAgQEJCQtmZxMREgsFg2Zl69erRvn17/vSnP1FQUEBJSQlPPvkk6enpnH766eUy/epXv6J+/fqcccYZTJ06tdz00b+77777SElJKXtkZGRU5NuXJEnHudOa1WHajV25Z1BHUpLiWLl9P5c9uZBbX1rCjn2Hoh1PkiTpuFShcuj2229n8ODBtGvXjri4ODp16sStt97K4MGDAWjXrh3Nmzdn9OjR7Nmzh6KiIu6//362b9/Otm3bADj77LOpUaMGt99+OwcPHqSgoIBRo0YRCoXKzgQCAWbNmsWSJUuoVasWiYmJ/O53v+Odd94hNTW1LM/dd9/Nq6++yuzZs7n88ssZMWIEv/3tb781/+jRo9m7d2/ZY9OmTRX9eUmSpONcTDDAf57dnLkjuzP4zGYEAvC3pVvpOWUeT72/jmJXzSRJksqpUDn08ssv88ILL/Diiy/yySef8NxzzzF58mSee+45AOLi4njttddYvXo1devWJTk5mZycHC666CJiYmIASEtL49VXX2XGjBnUrFmzbMTptNNOKzsTDoe54YYbaNCgAe+//z4fffQRAwcOpF+/fmUFEsBdd91Fly5dOPXUUxkxYgQTJ05k0qRJ35o/ISGB2rVrl3tIkqSqqW6NeO675CSm3Xgup2SkcqCwhHveXMHF//0+H6zdFe14kiRJx40K3TmUkZHBHXfcwY033lj2sXvuuYcXXniBlStXlju7d+9eioqKSEtL46yzzqJz5878/ve/L3dm165dxMbGkpqaSsOGDRkxYgSjRo1izpw59OnTp9y9RABt2rThmmuu4Y477vjGfAsWLKBr165s376d9PT07/1+fCt7SZKqh1AozKuLN/HAO6vYXVAEQN+TG3FX3/Y0SkmKcjpJkqQj76jdOXTw4EGCwfJPiYmJ+cZ7flJSUkhLSyMvL49FixYxcODAr52pX78+qampZGdns2PHDgYMGFD2dYCvfa1gMPiddwotWbKExMTEcqtn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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABIYAAAJGCAYAAAAu146OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOg0lEQVR4nOzdeXjU9b238XsmCwlb2AJhCTsmEFwQFEUUxIgiq7W1Wk+RurVqWxeg4lECuBYFatXW1rrRqrXaasENWQIoiCAKKGEJ+04A2UGyzMzzB8c8pW4TBYYk9+u6cl0l+c7MZ+bYU3nn8/79ApFIJIIkSZIkSZIqnWCsB5AkSZIkSVJsGAxJkiRJkiRVUgZDkiRJkiRJlZTBkCRJkiRJUiVlMCRJkiRJklRJGQxJkiRJkiRVUgZDkiRJkiRJlVR8rAeIpXA4zObNm6lRowaBQCDW40iSJEmSJB0VkUiEffv20ahRI4LBr98LqtTB0ObNm0lPT4/1GJIkSZIkScfEhg0baNKkydf+vFIHQzVq1AAOf0g1a9aM8TSSJEmSJElHx969e0lPTy/NPr5OpQ6GvqiP1axZ02BIkiRJkiRVON926RwvPi1JkiRJklRJGQxJkiRJkiRVUgZDkiRJkiRJlVSlvsaQJEmSJElfCIVCFBcXx3oMKSoJCQnExcV97+cxGJIkSZIkVWqRSIStW7eye/fuWI8ilUmtWrVIS0v71gtMfxODIUmSJElSpfZFKFS/fn2qVq36vf6SLR0PkUiEgwcPsm3bNgAaNmz4nZ/LYEiSJEmSVGmFQqHSUKhu3bqxHkeKWnJyMgDbtm2jfv3637lW5sWnJUmSJEmV1hfXFKpatWqMJ5HK7ot/br/PtbEMhiRJkiRJlZ71MZVHR+OfW4MhSZIkSZKkSspgSJIkSZIkqZIyGJIkSZIkqQLo3r07t9566zF57ubNm/PII49EfX7t2rUEAgEWLlx4TOb5wowZMwgEAuzevfuYvs63OV7v91jwrmSSJEmSJOmoSk9PZ8uWLdSrVy/Woxx1gwYNYvfu3fz73/8u/V55fr8GQ5IkSZIkVQJFRUUkJiYel9eKi4sjLS3tuLzWiaA8v1+rZJIkSZIk/Z9IJMLBopKYfEUikajnPHDgAAMHDqR69eo0bNiQsWPHfulM8+bNuffeexk4cCA1a9bkhhtuAGDWrFmce+65JCcnk56ezq9//WsOHDhQ+rht27bRt29fkpOTadGiBS+88MKXnnvZsmV07dqVpKQk2rVrx9SpUwkEAqVbNP9drfqi8jVt2jQ6depE1apV6dKlC8uXLz/iee+77z7q169PjRo1uO666xg2bBinnXZa1J8LwL/+9S+ysrKoUqUKzZs3/9JnU1hYyB133EF6ejpVqlShdevWPP300wCEQiGuvfZaWrRoQXJyMhkZGfz+978vfezIkSMZP348EyZMIBAIEAgEmDFjxldWyWbOnMmZZ55JlSpVaNiwIcOGDaOkpKT05927d+fXv/41v/nNb6hTpw5paWmMHDmyTO/1aHBjSJIkSZKk//N5cYh2Oe/E5LWX3HMRVROj+2v60KFDmTlzJhMmTKB+/fr87//+Lx9//PGXQpQxY8aQk5PDiBEjAFi1ahUXX3wx9913H8888wzbt2/nl7/8Jb/85S959tlngcNVqc2bNzN9+nQSEhL49a9/zbZt20qfMxQKMWDAAJo2bcrcuXPZt28fgwcPjmruu+66i7Fjx5KamsovfvELrrnmGmbPng3ACy+8wP33388f//hHzjnnHF566SXGjh1LixYtonpugI8++ojLL7+ckSNH8uMf/5j333+fm266ibp16zJo0CAABg4cyJw5c3j00Uc59dRTWbNmDTt27AAgHA7TpEkTXnnlFerWrcv777/PDTfcQMOGDbn88ssZMmQIS5cuZe/evaWfV506ddi8efMRc2zatIlLLrmEQYMG8de//pVly5Zx/fXXk5SUdET4M378eG6//Xbmzp3LnDlzGDRoEOeccw4XXnhh1O/5+zIYkiRJkiSpHNm/fz9PP/00zz//PBdccAFwOGBo0qTJl8726NHjiNDmuuuu46qrriq9SHWbNm149NFH6datG0888QTr16/n7bffZt68eZxxxhkAPP3007Rt27b0OaZMmcKqVauYMWNGaX3q/vvvjyrMuP/+++nWrRsAw4YNo3fv3hw6dIikpCQee+wxrr32Wn72s58BkJOTw+TJk9m/f3/Un824ceO44IILGD58OAAnnXQSS5Ys4eGHH2bQoEHk5+fz8ssvM2XKFLKzswFo2bJl6eMTEhIYNWpU6Z9btGjBnDlzePnll7n88supXr06ycnJFBYWfmN17I9//CPp6ek8/vjjBAIBMjMz2bx5M3fccQc5OTkEg4cLXKecckppaNemTRsef/xxpk2bZjAkSZIkSVIsJCfEseSei2L22tFYtWoVRUVFdO7cufR7derUISMj40tnO3XqdMSfFy1axCeffHJEPSwSiRAOh1mzZg35+fnEx8fTsWPH0p9nZmZSq1at0j8vX76c9PT0I4KRM888M6rZTznllNL/3LBhQ+Bwda1p06YsX76cm2666YjzZ555Jrm5uVE9N8DSpUvp37//Ed8755xzeOSRRwiFQixcuJC4uLjScOqr/OEPf+CZZ55h/fr1fP755xQVFZW5zrZ06VLOPvtsAoHAEXPs37+fjRs30rRpU+DIzwMOfyb/uZ11PJT5GkP79u3j1ltvpVmzZiQnJ9OlSxc+/PDD0p9HIhFycnJo2LAhycnJZGdns2LFiiOeY+fOnVx11VXUrFmTWrVqce21134pAfzkk08499xzSUpKIj09nYceeuhLs7zyyitkZmaSlJTEySefzFtvvVXWtyNJkiRJUqlAIEDVxPiYfP1niHC0VKtW7Yg/79+/n5///OcsXLiw9GvRokWsWLGCVq1aHfXX/28JCQml//mL9xsOh4/5634hOTn5G3/+0ksvMWTIEK699lomT57MwoUL+dnPfkZRUdExmec/Pw84/Jkcz88DvkMwdN111zFlyhT+9re/8emnn9KzZ0+ys7PZtGkTAA899BCPPvoof/rTn5g7dy7VqlXjoosu4tChQ6XPcdVVV5GXl8eUKVN44403ePfdd0svggWwd+9eevbsSbNmzfjoo494+OGHGTlyJE8++WTpmffff58rr7ySa6+9lgULFjBgwAAGDBjA4sWLv8/nIUmSJEnSCa1Vq1YkJCQwd+7c0u/t2rWL/Pz8b33s6aefzpIlS2jduvWXvhITE8nMzKSkpISPPvqo9DHLly9n9+7dpX/OyMhgw4YNFBQUlH7vPxdGvquMjIwvPU9Zn7dt27al1yz6wuzZsznppJOIi4vj5JNPJhwOM3PmzK98/OzZs+nSpQs33XQTHTp0oHXr1qxateqIM4mJiYRCoW+dY86cOUdcUHz27NnUqFHjKyt/sVSmYOjzzz/nX//6Fw899BDnnXcerVu3ZuTIkbRu3ZonnniCSCTCI488wt13303//v055ZRT+Otf/8rmzZtLr0y+dOlSJk2axFNPPUXnzp3p2rUrjz32GC+99FLpxZpeeOEFioqKeOaZZ8jKyuKKK67g17/+NePGjSud5fe//z0XX3wxQ4cOpW3bttx7772cfvrpPP7440fv0ykHlm/dxzt5W8t09XpJkiRJUvlVvXp1rr32WoYOHUpubi6LFy9m0KBBpdet+SZ33HEH77//Pr/85S9ZuHAhK1asYMKECfzyl78EDoczF198MT//+c+ZO3cuH330Edddd90RmzYXXnghrVq14uqrr+aTTz5h9uzZ3H333QDfa+vpV7/6FU8//TTjx49nxYoV3HfffXzyySdles7Bgwczbdo07r33XvLz8xk/fjyPP/44Q4YMAQ7fqe3qq6/mmmuu4d///jdr1qxhxowZvPzyy8Dh6/zMnz+fd955h/z8fIYPH/6lcKp58+Z88sknLF++nB07dlBcXPylOW666SY2bNjAr371K5YtW8aECRMYMWIEt99+e1T/dzqeyjRNSUkJoVCIpKSkI76fnJzMrFmzWLNmDVu3bi29gBNASkoKnTt3Zs6cOQDMmTOHWrVqHdFzzM7OJhgMlqadc+bM4bzzziMxMbH0zEUXXcTy5cvZtWtX6Zn/fJ0vznzxOl+lsLCQvXv3HvFVnkUiEYb/ezE//9tHDHr2Q9bsOPDtD5IkSZIklXsPP/ww5557Ln379iU7O5uuXbsecV2gr3PKKacwc+ZM8vPzOffcc+nQoQM5OTk0atSo9Myzzz5Lo0aN6NatGz/4wQ+44YYbqF+/funP4+Li+Pe//83+/fs544wzuO6667jrrrsAvpQXlMVVV13FnXfeyZAhQzj99NNZs2YNgwYNKtNznn766bz88su89NJLtG/fnpycHO65557SO5IBPPHEE/zwhz/kpptuIjMzk+uvv54DBw7/ffrnP/85P/jBD/jxj39M586d+eyzz7503aPrr7+ejIwMOnXqRGpq6pc2lAAaN27MW2+9xbx58zj11FP5xS9+wbXXXlsaoJ1IApEyrpp06dKFxMREXnzxRRo0aMDf//53rr76alq3bs2zzz7LOeecw+bNm0svIgVw+eWXEwgE+Mc//sEDDzzA+PHjWb58+RHPW79+fUaNGsWNN95Iz549adGiBX/+859Lf75kyRKysrJYsmQJbdu2JTExkfHjx3PllVeWnvnjH//IqFGjjlhn+08jR4484uriX9izZw81a9Ysy8dwQigOhXlkaj5/eXcNRaEwiXFB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", "text/plain": [ "
" ] diff --git a/src/openclsim/model/__init__.py b/src/openclsim/model/__init__.py index 7ddd3e92..8ed1e3e4 100644 --- a/src/openclsim/model/__init__.py +++ b/src/openclsim/model/__init__.py @@ -10,7 +10,7 @@ from .single_run_process import single_run_process from .while_activity import RepeatActivity, WhileActivity from .while_access_activity import WhileAccessActivity, RepeatAccessActivity -from produce_amount_activity import ProduceAmountActivity +from .produce_amount_activity import ProduceAmountActivity __all__ = [ "AbstractPluginClass", From 62186f917307cbe64bd30bfb1351a0aeed53ddd9 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Mon, 8 Apr 2024 10:53:54 +0200 Subject: [PATCH 092/100] update WID notebook --- notebooks/39_Water_Injection_Dredging.ipynb | 111 +++++++++++++++----- 1 file changed, 86 insertions(+), 25 deletions(-) diff --git a/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb index eb731287..08a8ba66 100644 --- a/notebooks/39_Water_Injection_Dredging.ipynb +++ b/notebooks/39_Water_Injection_Dredging.ipynb @@ -1,9 +1,30 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "672a86ae", + "metadata": {}, + "source": [ + "## Water Injection Dredging \n", + "This notebook is made to simulate the workflow of a Water Injection Dredging which is a method used for maintenance dredging. This method is conducted by Water Injection Dredgers (WID) by injecting water with a jetbar and multiple nozzles to the sediment bed, fluidize the sediments, and leads the sediments to the open sea using currents and waves.\n", + "\n", + "The WID module is generated by defining a \"processor_wid\" mixin and \"produce_amount_activity\" activity. These two files can be found in the src folder of OpenCLSim branch \"opentnsim-openclsim-demo-notebooks\".\n", + "\n", + "The main logic behind the notebook is to dredge sediments without loading them in another destination. The sediment is washed out from the system by the prodcution rate and hydrodynamics are not included in the model." + ] + }, + { + "cell_type": "markdown", + "id": "4ba38374", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, { "cell_type": "code", - "execution_count": 11, - "id": "e92bbd48-270d-41f1-8073-214607b13652", + "execution_count": 64, + "id": "6c17f731", "metadata": {}, "outputs": [], "source": [ @@ -14,25 +35,25 @@ "import inspect\n", "import sys \n", "import os \n", - "import matplotlib.pyplot as plt" + "import matplotlib.pyplot as plt\n", + "\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plot as plot\n", + "import openclsim.plugins as plugins" ] }, { - "cell_type": "code", - "execution_count": 12, - "id": "e9c8d3ea-28e4-4276-a08a-6d823df569ce", + "cell_type": "markdown", + "id": "d455976e", "metadata": {}, - "outputs": [], "source": [ - "import openclsim.core as core\n", - "import openclsim.model as model\n", - "import openclsim.plot as plot\n", - "import openclsim.plugins as plugins" + "#### 1. Define simpy environment and start simulation" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 65, "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", "metadata": {}, "outputs": [], @@ -41,9 +62,17 @@ "my_env = simpy.Environment(initial_time=simulation_start)" ] }, + { + "cell_type": "markdown", + "id": "c7e81df2", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 66, "id": "877927ec-0040-4d99-a6cd-7bd79ade2df0", "metadata": {}, "outputs": [], @@ -72,9 +101,17 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "25d99cb3", + "metadata": {}, + "source": [ + "#### 3. Define site(s) and vessel(s)" + ] + }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 67, "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", "metadata": {}, "outputs": [], @@ -103,22 +140,22 @@ ] }, { - "cell_type": "code", - "execution_count": 16, - "id": "98fbdcce-4b95-4ed6-aada-584c64cd9472", + "cell_type": "markdown", + "id": "886bb220", "metadata": {}, - "outputs": [], "source": [ - "registry = {}" + "#### 4. Define water injection dredging activity" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 68, "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", "metadata": {}, "outputs": [], "source": [ + "registry = {}\n", + "\n", "sub_processes = [\n", " model.ProduceAmountActivity(\n", " env=my_env,\n", @@ -149,9 +186,17 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "e7504c98", + "metadata": {}, + "source": [ + "#### 5. Register the processes and run the simulation" + ] + }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 69, "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", "metadata": {}, "outputs": [], @@ -162,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 70, "id": "b86e412e-d68c-4041-b687-6379680a6d13", "metadata": {}, "outputs": [], @@ -181,9 +226,17 @@ ").sort_values(by=['Timestamp'])" ] }, + { + "cell_type": "markdown", + "id": "8ed56f95", + "metadata": {}, + "source": [ + "#### 6. Obtain activity log" + ] + }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 71, "id": "fecee48b-508b-45ac-8b04-494a4e4bea41", "metadata": {}, "outputs": [ @@ -566,7 +619,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 72, "id": "50eb7960-37a2-4dec-98a3-2095fb1880b1", "metadata": {}, "outputs": [ @@ -947,9 +1000,17 @@ "display(plot.get_log_dataframe(Dredging_site, [while_activity]))" ] }, + { + "cell_type": "markdown", + "id": "59143171", + "metadata": {}, + "source": [ + "#### 7. Results in a Gantt chart" + ] + }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 73, "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", "metadata": {}, "outputs": [ From 569ef58f30c04e564c226d5c0fc7cac117bd80db Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Mon, 22 Apr 2024 14:23:03 +0200 Subject: [PATCH 093/100] Add exercise --- notebooks/40_Backhoe_Barge.ipynb | 3934 ++++++++++++++++++++++++++++++ 1 file changed, 3934 insertions(+) create mode 100644 notebooks/40_Backhoe_Barge.ipynb diff --git a/notebooks/40_Backhoe_Barge.ipynb b/notebooks/40_Backhoe_Barge.ipynb new file mode 100644 index 00000000..e8b84996 --- /dev/null +++ b/notebooks/40_Backhoe_Barge.ipynb @@ -0,0 +1,3934 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 12, + "id": "5c19484c", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import shapely\n", + "import simpy\n", + "from numpy import random\n", + "import gurobipy\n", + "\n", + "import openclsim.core as core\n", + "import openclsim.model as model\n", + "import openclsim.plot as plot\n", + "from openclsim.io import get_activity_resources, get_activity_log, get_activities, get_concepts\n", + "from openclsim.io import get_tree_as_list, get_ranges_dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5785e657", + "metadata": {}, + "outputs": [], + "source": [ + "Site = type(\n", + " \"Site\",\n", + " (\n", + " core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasContainer,\n", + " core.HasResource,\n", + " ),\n", + " {},\n", + ")\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.Identifiable,\n", + " core.ContainerDependentMovable,\n", + " core.Processor,\n", + " core.HasResource,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "43916251", + "metadata": {}, + "outputs": [], + "source": [ + "def run(nr_tshd, nr_barge, total_amount):\n", + " simulation_start = 0\n", + " my_env = simpy.Environment(initial_time=simulation_start)\n", + " registry = {}\n", + "\n", + " \n", + " #create site objects\n", + " location_berth = shapely.geometry.Point(4.18055556, 52.18664444)\n", + " data_berth = {\"env\": my_env,\n", + " \"name\": \"berth\",\n", + " \"geometry\": location_berth,\n", + " \"capacity\": total_amount,\n", + " \"level\": total_amount,\n", + " \"nr_resources\":2}\n", + " berth = Site(**data_berth)\n", + "\n", + " location_dump = shapely.geometry.Point(4.25222222, 52.11428333)\n", + " data_dump = {\"env\": my_env,\n", + " \"name\": \"dump\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": total_amount,\n", + " \"level\": 0,\n", + " \"nr_resources\":2}\n", + " dump = Site(**data_dump)\n", + " \n", + " #create vessel objects\n", + " vessels = {}\n", + " \n", + " for i in range (nr_tshd):\n", + " vessels[f\"tshd{i}\"] = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"tshd{i}\",\n", + " geometry=location_dump,\n", + " capacity=2000,\n", + " compute_v=lambda x: 10\n", + " )\n", + " tshd = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"tshd{i}\",\n", + " geometry=location_dump,\n", + " capacity=2000,\n", + " compute_v=lambda x: 10\n", + " )\n", + " for i in range (nr_barge):\n", + " vessels[f\"barge{i}\"] = TransportProcessingResource(\n", + " env=my_env,\n", + " name=f\"barge{i}\",\n", + " geometry=location_dump,\n", + " capacity=4000,\n", + " compute_v=lambda x: 7\n", + " )\n", + " backhoe = TransportProcessingResource(\n", + " env=my_env,\n", + " name=\"backhoe\",\n", + " geometry=location_berth,\n", + " capacity=0,\n", + " compute_v=lambda x: 0\n", + " )\n", + " \n", + " vessels['tshd'] = tshd\n", + " vessels['backhoe'] = backhoe\n", + " \n", + " activities_tshd = {}\n", + " \n", + " for i in range (nr_tshd):\n", + " requested_resources={}\n", + "\n", + " \n", + " subprocesses_tshd = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing empty: \"+vessels[f\"tshd{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"tshd{i}\"],\n", + " destination=berth,\n", + " duration=1*3600,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"loading: \"+vessels[f\"tshd{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"tshd{i}\"],\n", + " origin=berth,\n", + " destination=vessels[f\"tshd{i}\"],\n", + " amount=2000,\n", + " duration=2*3600,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing full: \"+vessels[f\"tshd{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"tshd{i}\"],\n", + " destination=dump,\n", + " duration=1.5*3600,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"unloading: \"+vessels[f\"tshd{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"tshd{i}\"],\n", + " origin=vessels[f\"tshd{i}\"],\n", + " destination=dump,\n", + " amount=2000,\n", + " duration=0.5*3600,\n", + " requested_resources=requested_resources,\n", + " )\n", + " ]\n", + " \n", + " activities_tshd[f\"activity{i}\"] = model.WhileActivity(\n", + " env=my_env,\n", + " name=f\"while_sequential_activity_subcycle_tshd{i}\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential_activity_subcycle_tshd{i}\",\n", + " registry=registry,\n", + " sub_processes= subprocesses_tshd\n", + " )],\n", + " condition_event=[{\"type\": \"container\",\n", + " \"concept\": berth,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\"}\n", + " ]\n", + " )\n", + "\n", + "\n", + " \n", + " activities_backhoe_barge = {}\n", + "\n", + " for i in range (nr_barge):\n", + " requested_resources={}\n", + "\n", + " subprocesses_backhoe_barge = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing empty:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"barge{i}\"],\n", + " destination=berth,\n", + " duration=1*3600,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"loading:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " processor=backhoe,\n", + " origin=berth,\n", + " destination=vessels[f\"barge{i}\"],\n", + " amount=4000,\n", + " duration=4*3600,\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing full:\"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"barge{i}\"],\n", + " destination=dump,\n", + " duration=1.5*3600,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"unloading: \"+vessels[f\"barge{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"barge{i}\"],\n", + " origin=vessels[f\"barge{i}\"],\n", + " destination=dump,\n", + " amount=4000,\n", + " duration=0.5*3600,\n", + " requested_resources=requested_resources,\n", + " )\n", + " ]\n", + " \n", + " activities_backhoe_barge[f\"activity{i}\"] = model.WhileActivity(\n", + " env=my_env,\n", + " name=f\"while_sequential_activity_subcycle_barge{i}\",\n", + " registry=registry,\n", + " sub_processes=[model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential_activity_subcycle_barge{i}\",\n", + " registry=registry,\n", + " sub_processes= subprocesses_backhoe_barge,\n", + " )],\n", + " condition_event=[{\"type\": \"container\",\n", + " \"concept\": berth,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\"}\n", + " ]\n", + " ) \n", + " \n", + " model.register_processes([*activities_tshd.values(), *activities_backhoe_barge.values()])\n", + " my_env.run()\n", + " \n", + " return {\n", + " \"vessels\": vessels,\n", + " \"activities_tshd\": activities_tshd,\n", + " \"activities_backhoe_barge\": activities_backhoe_barge,\n", + " \"berth\":berth,\n", + " \"dump\":dump,\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "21b2b98c", + "metadata": {}, + "outputs": [], + "source": [ + "nr_barges = 2\n", + "nr_tshds = 2\n", + "res = run(nr_barges, nr_tshds , 30000)\n", + "vessels = res['vessels']\n", + "activities_backhoe_barge = res['activities_backhoe_barge']\n", + "activities_tshd = res['activities_tshd']\n", + "berth = res['berth']\n", + "dump = res['dump']" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "fbf53501", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityTimestampActivityStatecontainer levelgeometry
0loading: tshd01970-01-01 01:00:00START30000POINT (4.18055556 52.18664444)
1loading: tshd11970-01-01 01:00:00START28000POINT (4.18055556 52.18664444)
2loading: tshd01970-01-01 03:00:00STOP26000POINT (4.18055556 52.18664444)
3loading: tshd11970-01-01 03:00:00STOP26000POINT (4.18055556 52.18664444)
4loading:barge01970-01-01 03:00:00START26000POINT (4.18055556 52.18664444)
5loading: tshd01970-01-01 06:00:00START22000POINT (4.18055556 52.18664444)
6loading:barge01970-01-01 07:00:00STOP20000POINT (4.18055556 52.18664444)
7loading: tshd11970-01-01 07:00:00START20000POINT (4.18055556 52.18664444)
8loading: tshd01970-01-01 08:00:00STOP18000POINT (4.18055556 52.18664444)
9loading:barge11970-01-01 08:00:00START18000POINT (4.18055556 52.18664444)
10loading: tshd11970-01-01 09:00:00STOP14000POINT (4.18055556 52.18664444)
11loading: tshd01970-01-01 11:00:00START14000POINT (4.18055556 52.18664444)
12loading:barge11970-01-01 12:00:00STOP12000POINT (4.18055556 52.18664444)
13loading:barge01970-01-01 12:00:00START12000POINT (4.18055556 52.18664444)
14loading: tshd01970-01-01 13:00:00STOP8000POINT (4.18055556 52.18664444)
15loading: tshd11970-01-01 13:00:00START8000POINT (4.18055556 52.18664444)
16loading: tshd11970-01-01 15:00:00STOP6000POINT (4.18055556 52.18664444)
17loading:barge01970-01-01 16:00:00STOP6000POINT (4.18055556 52.18664444)
18loading:barge11970-01-01 16:00:00START6000POINT (4.18055556 52.18664444)
19loading: tshd01970-01-01 16:00:00START2000POINT (4.18055556 52.18664444)
20loading: tshd01970-01-01 18:00:00STOP0POINT (4.18055556 52.18664444)
21loading:barge11970-01-01 20:00:00STOP0POINT (4.18055556 52.18664444)
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 loading: tshd0 1970-01-01 01:00:00 START 30000 \n", + "1 loading: tshd1 1970-01-01 01:00:00 START 28000 \n", + "2 loading: tshd0 1970-01-01 03:00:00 STOP 26000 \n", + "3 loading: tshd1 1970-01-01 03:00:00 STOP 26000 \n", + "4 loading:barge0 1970-01-01 03:00:00 START 26000 \n", + "5 loading: tshd0 1970-01-01 06:00:00 START 22000 \n", + "6 loading:barge0 1970-01-01 07:00:00 STOP 20000 \n", + "7 loading: tshd1 1970-01-01 07:00:00 START 20000 \n", + "8 loading: tshd0 1970-01-01 08:00:00 STOP 18000 \n", + "9 loading:barge1 1970-01-01 08:00:00 START 18000 \n", + "10 loading: tshd1 1970-01-01 09:00:00 STOP 14000 \n", + "11 loading: tshd0 1970-01-01 11:00:00 START 14000 \n", + "12 loading:barge1 1970-01-01 12:00:00 STOP 12000 \n", + "13 loading:barge0 1970-01-01 12:00:00 START 12000 \n", + "14 loading: tshd0 1970-01-01 13:00:00 STOP 8000 \n", + "15 loading: tshd1 1970-01-01 13:00:00 START 8000 \n", + "16 loading: tshd1 1970-01-01 15:00:00 STOP 6000 \n", + "17 loading:barge0 1970-01-01 16:00:00 STOP 6000 \n", + "18 loading:barge1 1970-01-01 16:00:00 START 6000 \n", + "19 loading: tshd0 1970-01-01 16:00:00 START 2000 \n", + "20 loading: tshd0 1970-01-01 18:00:00 STOP 0 \n", + "21 loading:barge1 1970-01-01 20:00:00 STOP 0 \n", + "\n", + " geometry \n", + "0 POINT (4.18055556 52.18664444) \n", + "1 POINT (4.18055556 52.18664444) \n", + "2 POINT (4.18055556 52.18664444) \n", + "3 POINT (4.18055556 52.18664444) \n", + "4 POINT (4.18055556 52.18664444) \n", + "5 POINT (4.18055556 52.18664444) \n", + "6 POINT (4.18055556 52.18664444) \n", + "7 POINT (4.18055556 52.18664444) \n", + "8 POINT (4.18055556 52.18664444) \n", + "9 POINT (4.18055556 52.18664444) \n", + "10 POINT (4.18055556 52.18664444) \n", + "11 POINT (4.18055556 52.18664444) \n", + "12 POINT (4.18055556 52.18664444) \n", + "13 POINT (4.18055556 52.18664444) \n", + "14 POINT (4.18055556 52.18664444) \n", + "15 POINT (4.18055556 52.18664444) \n", + "16 POINT (4.18055556 52.18664444) \n", + "17 POINT (4.18055556 52.18664444) \n", + "18 POINT (4.18055556 52.18664444) \n", + "19 POINT (4.18055556 52.18664444) \n", + "20 POINT (4.18055556 52.18664444) \n", + "21 POINT (4.18055556 52.18664444) " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(berth, [*activities_tshd.values(), *activities_backhoe_barge.values()]))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7cf054e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(83,34,161)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: tshd0", + "type": "scatter", + "x": [ + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T09:30:00", + "1970-01-01T09:30:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", + "1970-01-01T14:30:00", + "1970-01-01T14:30:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T19:30:00", + "1970-01-01T19:30:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00" + ], + "y": [ + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(97,48,175)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: tshd0", + "type": "scatter", + "x": [ + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T09:30:00", + "1970-01-01T09:30:00", + "1970-01-01T09:30:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T14:30:00", + "1970-01-01T14:30:00", + "1970-01-01T14:30:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T19:30:00", + "1970-01-01T19:30:00", + "1970-01-01T19:30:00" + ], + "y": [ + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(111,62,189)", + "width": 10 + }, + "mode": "lines", + "name": "loading: tshd0", + "type": "scatter", + "x": [ + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00" + ], + "y": [ + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(125,76,203)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: tshd0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00" + ], + "y": [ + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null, + "tshd0", + "tshd0", + "tshd0", + "tshd0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(139,90,217)", + "width": 10 + }, + "mode": "lines", + "name": "loading: tshd1", + "type": "scatter", + "x": [ + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00" + ], + "y": [ + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(153,104,231)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full: tshd1", + "type": "scatter", + "x": [ + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T10:30:00", + "1970-01-01T10:30:00", + "1970-01-01T10:30:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T16:30:00", + "1970-01-01T16:30:00", + "1970-01-01T16:30:00" + ], + "y": [ + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(167,118,245)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty: tshd1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00" + ], + "y": [ + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(181,132,3)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: tshd1", + "type": "scatter", + "x": [ + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T10:30:00", + "1970-01-01T10:30:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T16:30:00", + "1970-01-01T16:30:00", + "1970-01-01T17:00:00", + "1970-01-01T17:00:00", + "1970-01-01T17:00:00" + ], + "y": [ + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null, + "tshd1", + "tshd1", + "tshd1", + "tshd1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(195,146,17)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge0", + "type": "scatter", + "x": [ + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00" + ], + "y": [ + "barge0", + "barge0", + "barge0", + "barge0", + null, + "barge0", + "barge0", + "barge0", + "barge0", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(209,160,31)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full:barge0", + "type": "scatter", + "x": [ + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T08:30:00", + "1970-01-01T08:30:00", + "1970-01-01T08:30:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T17:30:00", + "1970-01-01T17:30:00", + "1970-01-01T17:30:00" + ], + "y": [ + "barge0", + "barge0", + "barge0", + "barge0", + null, + "barge0", + "barge0", + "barge0", + "barge0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(223,174,45)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty:barge0", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00" + ], + "y": [ + "barge0", + "barge0", + "barge0", + "barge0", + null, + "barge0", + "barge0", + "barge0", + "barge0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(237,188,59)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: barge0", + "type": "scatter", + "x": [ + "1970-01-01T08:30:00", + "1970-01-01T08:30:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T17:30:00", + "1970-01-01T17:30:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00" + ], + "y": [ + "barge0", + "barge0", + "barge0", + "barge0", + null, + "barge0", + "barge0", + "barge0", + "barge0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(251,202,73)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: barge1", + "type": "scatter", + "x": [ + "1970-01-01T13:30:00", + "1970-01-01T13:30:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T21:30:00", + "1970-01-01T21:30:00", + "1970-01-01T22:00:00", + "1970-01-01T22:00:00", + "1970-01-01T22:00:00" + ], + "y": [ + "barge1", + "barge1", + "barge1", + "barge1", + null, + "barge1", + "barge1", + "barge1", + "barge1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(9,216,87)", + "width": 10 + }, + "mode": "lines", + "name": "sailing empty:barge1", + "type": "scatter", + "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00" + ], + "y": [ + "barge1", + "barge1", + "barge1", + "barge1", + null, + "barge1", + "barge1", + "barge1", + "barge1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(23,230,101)", + "width": 10 + }, + "mode": "lines", + "name": "sailing full:barge1", + "type": "scatter", + "x": [ + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T13:30:00", + "1970-01-01T13:30:00", + "1970-01-01T13:30:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T21:30:00", + "1970-01-01T21:30:00", + "1970-01-01T21:30:00" + ], + "y": [ + "barge1", + "barge1", + "barge1", + "barge1", + null, + "barge1", + "barge1", + "barge1", + "barge1", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(37,244,115)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge1", + "type": "scatter", + "x": [ + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00" + ], + "y": [ + "barge1", + "barge1", + "barge1", + "barge1", + null, + "barge1", + "barge1", + "barge1", + "barge1", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(51,2,129)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge0", + "type": "scatter", + "x": [ + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00" + ], + "y": [ + "barge0", + "barge0", + "barge0", + "barge0", + null, + "barge0", + "barge0", + "barge0", + "barge0", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(65,16,143)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge1", + "type": "scatter", + "x": [ + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00" + ], + "y": [ + "barge1", + "barge1", + "barge1", + "barge1", + null, + "barge1", + "barge1", + "barge1", + "barge1", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T00:00:00", + "1970-01-01T22:00:00" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_gantt_chart([*vessels.values()], id_map=[*activities_tshd.values(), *activities_backhoe_barge.values()])" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "2c611e5f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(24,56,20)", + "width": 10 + }, + "mode": "lines", + "name": "loading: tshd1", + "type": "scatter", + "x": [ + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(56,88,52)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge0", + "type": "scatter", + "x": [ + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(88,120,84)", + "width": 10 + }, + "mode": "lines", + "name": "loading: tshd0", + "type": "scatter", + "x": [ + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(120,152,116)", + "width": 10 + }, + "mode": "lines", + "name": "loading:barge1", + "type": "scatter", + "x": [ + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00" + ], + "y": [ + "berth", + "berth", + "berth", + "berth", + null, + "berth", + "berth", + "berth", + "berth", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(152,184,148)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: barge0", + "type": "scatter", + "x": [ + "1970-01-01T08:30:00", + "1970-01-01T08:30:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T17:30:00", + "1970-01-01T17:30:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(184,216,180)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: barge1", + "type": "scatter", + "x": [ + "1970-01-01T13:30:00", + "1970-01-01T13:30:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T21:30:00", + "1970-01-01T21:30:00", + "1970-01-01T22:00:00", + "1970-01-01T22:00:00", + "1970-01-01T22:00:00" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(216,248,212)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: tshd0", + "type": "scatter", + "x": [ + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T09:30:00", + "1970-01-01T09:30:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", + "1970-01-01T14:30:00", + "1970-01-01T14:30:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T19:30:00", + "1970-01-01T19:30:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(248,24,244)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: tshd1", + "type": "scatter", + "x": [ + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T10:30:00", + "1970-01-01T10:30:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T16:30:00", + "1970-01-01T16:30:00", + "1970-01-01T17:00:00", + "1970-01-01T17:00:00", + "1970-01-01T17:00:00" + ], + "y": [ + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null, + "dump", + "dump", + "dump", + "dump", + null + ] + } + ], + "layout": { + "hovermode": "closest", + "legend": { + "orientation": "h", + "x": 0, + "y": -0.2 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "GANTT Chart" + }, + "xaxis": { + "range": [ + "1970-01-01T01:00:00", + "1970-01-01T22:00:00" + ], + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Time" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "Activities" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_gantt_chart(\n", + " [berth, dump],\n", + " id_map=[*activities_tshd.values(), *activities_backhoe_barge.values()]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f0aa800b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABIYAAAJGCAYAAAAu146OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAADutElEQVR4nOzdd1zV9eLH8ddhL8HFEMSNWwE3rlyJq1wNy1t6s0xT00zb2fxlmebMxq2r3W62XTkzFUfiQlHcoiguwAmCzHPO7w+S4rZAgS9w3s/Hg8f5cs7nfM/7QCq9+X4+H5PVarUiIiIiIiIiIiI2x87oACIiIiIiIiIiYgwVQyIiIiIiIiIiNkrFkIiIiIiIiIiIjVIxJCIiIiIiIiJio1QMiYiIiIiIiIjYKBVDIiIiIiIiIiI2SsWQiIiIiIiIiIiNcjA6gJEsFgvnz5+nQoUKmEwmo+OIiIiIiIiIiBQJq9XK9evX8ff3x87uz68Lsuli6Pz58wQGBhodQ0RERERERESkWJw5c4bq1av/6eM2XQxVqFAByP0ieXp6GpxGRERERERERKRopKSkEBgYmNd9/BmbLoZuTh/z9PRUMSQiIiIiIiIi5c7fLZ2jxadFRERERERERGyUiiERERERERERERulYkhERERERERExEapGBIRERERERERsVEqhkREREREREREbJSKIRERERERERERG6ViSERERERERETERqkYEhERERERERGxUSqGRERERERERERslIohEREREREREREbpWJIRERERERERMRGqRgSEREREREREbFRKoZERERERERERGyUiiERERERERERERulYkhERERERERExEapGBIRERERERERsVEqhkREREREREREbJSKIRERERERERERG1WoYuiDDz6gefPmeHp64unpSVhYGKtXr857PCMjgzFjxlClShU8PDwYPHgwiYmJ+c4RHx9P3759cXNzw8fHh8mTJ5OTk5NvTEREBC1atMDZ2Zl69eqxcOHC32V5//33qVWrFi4uLrRt25adO3cW5q2IiIiIiIiIiNi8QhVD1atX5+233yYqKordu3fTrVs3+vfvz8GDBwF46qmn+OGHH/j222/ZtGkT58+fZ9CgQXnPN5vN9O3bl6ysLLZt28Znn33GwoULmTJlSt6YuLg4+vbtS9euXYmOjmbChAk8+uijrF27Nm/M119/zcSJE3nllVfYs2cPwcHBhIeHk5SUdLtfDxERERERERERm2GyWq3W2zlB5cqVeffdd7nnnnvw9vZm0aJF3HPPPQAcOXKERo0aERkZSbt27Vi9ejX9+vXj/Pnz+Pr6AvDhhx/y7LPPcvHiRZycnHj22WdZuXIlBw4cyHuNIUOGcO3aNdasWQNA27Ztad26NfPmzQPAYrEQGBjIuHHjeO655wqcPSUlBS8vL5KTk/H09LydL4MU0JW0LA6dT8HDxYGQwIpGxxERERERERHJL347mLOhZnuwszc6zS0raOdxy2sMmc1mvvrqK9LS0ggLCyMqKors7Gx69OiRN6Zhw4bUqFGDyMhIACIjI2nWrFleKQQQHh5OSkpK3lVHkZGR+c5xc8zNc2RlZREVFZVvjJ2dHT169Mgb82cyMzNJSUnJ9yElK/rMVf7x6Q6mLDvw94NFRERERERESlrEVPisH2yfb3SSElHoYigmJgYPDw+cnZ0ZNWoUS5YsoXHjxiQkJODk5ETFihXzjff19SUhIQGAhISEfKXQzcdvPvZXY1JSUkhPT+fSpUuYzeY/HHPzHH9m6tSpeHl55X0EBgYW9u2LiIiIiIiISHmVehHiNuceN+xnbJYSUuhiqEGDBkRHR7Njxw5Gjx7NsGHDOHToUHFkK3LPP/88ycnJeR9nzpwxOpKIiIiIiIiIlBaHloLVAgEtoXJto9OUCIfCPsHJyYl69eoB0LJlS3bt2sXs2bO5//77ycrK4tq1a/muGkpMTMTPzw8APz+/3+0ednPXst+O+d+dzBITE/H09MTV1RV7e3vs7e3/cMzNc/wZZ2dnnJ2dC/uWRURERERERMQWHFice9t0sLE5StAtrzF0k8ViITMzk5YtW+Lo6Mj69evzHjt69Cjx8fGEhYUBEBYWRkxMTL7dw9atW4enpyeNGzfOG/Pbc9wcc/McTk5OtGzZMt8Yi8XC+vXr88aIiIiIiIiIiBRK8jmI35Z73HiAoVFKUqGuGHr++efp3bs3NWrU4Pr16yxatIiIiAjWrl2Ll5cXI0aMYOLEiVSuXBlPT0/GjRtHWFgY7dq1A6Bnz540btyYhx56iGnTppGQkMBLL73EmDFj8q7kGTVqFPPmzeOZZ57hkUceYcOGDXzzzTesXLkyL8fEiRMZNmwYrVq1ok2bNsyaNYu0tDT++c9/FuGXRkRERERERERsxsElubc12oNXgLFZSlChiqGkpCQefvhhLly4gJeXF82bN2ft2rXceeedAMycORM7OzsGDx5MZmYm4eHhzJ//6yre9vb2rFixgtGjRxMWFoa7uzvDhg3j9ddfzxtTu3ZtVq5cyVNPPcXs2bOpXr06n3zyCeHh4Xlj7r//fi5evMiUKVNISEggJCSENWvW/G5BahERERERERGRAjnwfe5t00HG5ihhJqvVajU6hFFSUlLw8vIiOTkZT09Po+PYhA1HEnlk4W6aV/di+diORscRERERERERgStxMCcETHbw9DHw8DY60W0raOdx22sMiYiIiIiIiIiUaQd/WXS69h3lohQqDBVDIiIiIiIiImLb8nYjs61pZKBiSERERERERERsWdIRSDwAdo7QsJ/RaUqciiERERERERERsV03p5HV6w5ulY3NYgAVQyIiIiIiIiJim6zW3+xGNtjYLAZRMSQiIiIiIiIitikhBi7HgoMLNOhtdBpDqBgSEREREREREdt082qh+uHgXMHYLAZRMSQiIiIiIiIitsdq/XU3sia2txvZTSqGRERERERERMT2nN0NyfHg5AFBPY1OYxgVQyIiIiIiIiJie25OI2vQB5zcjM1iIBVDIiIiIiIiImJbLGY4uCT32EZ3I7tJxZCIiIiIiIiI2JbT2yA1AVy8oG43o9MYSsWQiIiIiIiIiNiWg78sOt3obnBwMjaLwVQMiYiIiIiIiIjtMGfDoWW5x01tdzeym1QMiYiIiIiIiIjtiNsENy6DW1Wo1dnoNIZTMSQiIiIiIiIituPAL9PImgwAewdDo5QGKoZERERERERExDbkZMLhH3KPbXw3sptUDImIiIiIiIiIbYj9CTJToII/BLYzOk2poGJIRERERERERGzDzWlkTQeBnSoRUDEkIiIiIiIiIrYgKw2Orso9bqLdyG5SMSQiIiIiIiIi5d+xtZB9AyrWhIAWRqcpNVQMiYiIiIiIiEj5d+D73Numg8FkMjZLKaJiSERERERERETKt4xkOL4u91i7keWjYkhEREREREREyrcjq8CcCVUbgG8To9OUKiqGxBCpGTkkp2cbHUNERERERERsgaaR/SkVQ1Ki3JwcADh5KY3W//cTT3wRxU+HEsk2WwxOJiIiIiIiIuXSjStwcmPucVPtRva/HIwOILalda3KvHJXY77a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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([berth, dump, *vessels.values()])" + ] + }, + { + "cell_type": "markdown", + "id": "d85a3d55", + "metadata": {}, + "source": [ + "### Task\n", + "\n", + "Determine the total energy consumption of the maintenance dredging processes for different scenarios\n", + "\n", + "Draw a graph that compares the energy consumption of each scenario and the duration of doing each job." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "1ed476cf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+-----------+-----------------+\n", + "| fuel_type | emission_factor |\n", + "+-----------+-----------------+\n", + "| Diesel | 1.5 |\n", + "| MGO | 2.0 |\n", + "| LNG | 1 |\n", + "+-----------+-----------------+\n" + ] + } + ], + "source": [ + "from prettytable import PrettyTable\n", + "\n", + "# Create a PrettyTable object\n", + "table = PrettyTable()\n", + "\n", + "# Define column names\n", + "table.field_names = [\"fuel_type\", \"emission_factor\"]\n", + "\n", + "# Add rows to the table\n", + "table.add_row([\"Diesel\", \"1.5\"])\n", + "table.add_row([\"MGO\", \"2.0\"])\n", + "table.add_row([\"LNG\", \"1\"])\n", + "\n", + "# Print the table\n", + "print(table)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "73b2085c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rates [€/day]sailing empty [kW]loading [kW]sailing full [kW]unloading [kW]WAIT [kW]vessel_typefuel_type
vessel_name
barge I5000100010002500250020bargeDiesel
barge II5000100010002500250020bargeDiesel
barge III5000100010002500250020bargeDiesel
tshd I1500020001000050006000100TSHDLNG
tshd II1500020001000050006000100TSHDLNG
backhoe2500001500000500BHDMGO
\n", + "
" + ], + "text/plain": [ + " rates [€/day] sailing empty [kW] loading [kW] \\\n", + "vessel_name \n", + "barge I 5000 1000 1000 \n", + "barge II 5000 1000 1000 \n", + "barge III 5000 1000 1000 \n", + "tshd I 15000 2000 10000 \n", + "tshd II 15000 2000 10000 \n", + "backhoe 25000 0 15000 \n", + "\n", + " sailing full [kW] unloading [kW] WAIT [kW] vessel_type \\\n", + "vessel_name \n", + "barge I 2500 2500 20 barge \n", + "barge II 2500 2500 20 barge \n", + "barge III 2500 2500 20 barge \n", + "tshd I 5000 6000 100 TSHD \n", + "tshd II 5000 6000 100 TSHD \n", + "backhoe 0 0 500 BHD \n", + "\n", + " fuel_type \n", + "vessel_name \n", + "barge I Diesel \n", + "barge II Diesel \n", + "barge III Diesel \n", + "tshd I LNG \n", + "tshd II LNG \n", + "backhoe MGO " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "barge_empty = 1000 # kW\n", + "barge_full = 2500 # kW\n", + "barge_loading = 1000 # kW\n", + "barge_unloading = 2500 # kW\n", + "barge_WAIT = 20 # kW\n", + "\n", + "hopper_empty = 2000 # kW\n", + "hopper_full = 5000 # kW\n", + "hopper_loading = 10000 # kW\n", + "hopper_unloading = 6000 # kW\n", + "hopper_WAIT = 100 # kW\n", + "\n", + "backhoe_loading = 15000\n", + "backhoe_WAIT = 500\n", + "\n", + "backhoe_name = 'backhoe'\n", + "barge_names = ['barge I','barge II','barge III']\n", + "tshd_names = ['tshd I','tshd II']\n", + "\n", + "\n", + "vessel_specs = pd.DataFrame.from_dict(\n", + " {'rates [€/day]':{'barge I':5000,'barge II':5000,'barge III':5000,\n", + " 'tshd I':15000, 'tshd II': 15000,\n", + " 'backhoe':25000}, # EUR/day\n", + " 'sailing empty [kW]':{'barge I':barge_empty,'barge II':barge_empty,'barge III':barge_empty,\n", + " 'tshd I':hopper_empty, 'tshd II': hopper_empty,\n", + " 'backhoe':0},\n", + " 'loading [kW]':{'barge I':barge_loading, 'barge II':barge_loading,'barge III':barge_loading,\n", + " 'tshd I':hopper_loading, 'tshd II': hopper_loading,\n", + " 'backhoe':backhoe_loading},\n", + " 'sailing full [kW]':{'barge I':barge_full,'barge II':barge_full,'barge III':barge_full,\n", + " 'tshd I':hopper_full, 'tshd II': hopper_full,\n", + " 'backhoe':0},\n", + " 'unloading [kW]':{'barge I':barge_unloading,'barge II':barge_unloading,'barge III':barge_unloading,\n", + " 'tshd I':hopper_unloading, 'tshd II': hopper_unloading,\n", + " 'backhoe':0},\n", + " 'WAIT [kW]':{'barge I':barge_WAIT,'barge II':barge_WAIT,'barge III':barge_WAIT,\n", + " 'tshd I':hopper_WAIT, 'tshd II': hopper_WAIT,\n", + " 'backhoe':backhoe_WAIT},\n", + " 'vessel_type':{'barge I':'barge','barge II':'barge','barge III':'barge',\n", + " 'tshd I':'TSHD', 'tshd II': 'TSHD',\n", + " 'backhoe':'BHD'},\n", + " 'fuel_type':{'barge I':'Diesel','barge II':'Diesel','barge III':'Diesel',\n", + " 'tshd I':'LNG', 'tshd II': 'LNG',\n", + " 'backhoe':'MGO'},\n", + "})\n", + "\n", + "vessel_specs.index.name = 'vessel_name' \n", + "vessel_specs.to_csv('vessel_specs.csv', index=True)\n", + "vessel_specs = pd.read_csv('vessel_specs.csv', index_col='vessel_name')\n", + "vessel_specs" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "371c976e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# Data\n", + "scenarios = ['Scenario 1', 'Scenario 2', 'Scenario 3']\n", + "emission = [100, 150, 200] # Energy consumption in kWh\n", + "duration = [5, 25, 80] # Duration in hours\n", + "\n", + "# Create subplots\n", + "fig, ax = plt.subplots()\n", + "\n", + "# Plot energy consumption\n", + "ax.plot(scenarios, emission, marker='o', color='b', label='Emission (kg)')\n", + "ax.set_ylabel('Emission (kg)', color='b')\n", + "ax.tick_params(axis='y', labelcolor='b')\n", + "\n", + "# Create a secondary y-axis for duration\n", + "ax2 = ax.twinx()\n", + "ax2.plot(scenarios, duration, marker='s', color='r', label='Duration (hours)')\n", + "ax2.set_ylabel('Duration (hours)', color='r')\n", + "ax2.tick_params(axis='y', labelcolor='r')\n", + "\n", + "# Title and labels\n", + "plt.title('Energy Consumption and Duration for Different Scenarios')\n", + "ax.set_xlabel('Scenarios')\n", + "\n", + "# Add legend\n", + "lines, labels = ax.get_legend_handles_labels()\n", + "lines2, labels2 = ax2.get_legend_handles_labels()\n", + "ax2.legend(lines + lines2, labels + labels2, loc='upper left')\n", + "\n", + "plt.show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 8c25b34d3f46cb45178c5637aa55a7ad189fc9e9 Mon Sep 17 00:00:00 2001 From: Arash Sepehri Date: Tue, 23 Apr 2024 14:37:25 +0200 Subject: [PATCH 094/100] backhoe barge notebook --- notebooks/40_Backhoe_Barge.ipynb | 1142 ++++++++++++++++-------------- notebooks/barge_specs.csv | 4 + notebooks/vessel_specs.csv | 18 +- 3 files changed, 615 insertions(+), 549 deletions(-) create mode 100644 notebooks/barge_specs.csv diff --git a/notebooks/40_Backhoe_Barge.ipynb b/notebooks/40_Backhoe_Barge.ipynb index e8b84996..8b2a7ec8 100644 --- a/notebooks/40_Backhoe_Barge.ipynb +++ b/notebooks/40_Backhoe_Barge.ipynb @@ -1,28 +1,72 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "685154c6", + "metadata": {}, + "source": [ + "## Backhoe Barge Hopper Simulation\n", + "\n", + "This notebook is used to simulate different setups for three types of equipment available to be used for maintenance dreding as follows.\n", + "\n", + "* Backhoe Dredger that uses separate identical barges to transport the dredged sediments to the designated dump location.\n", + "* Trailing Suction Hopper Dredger (TSHD) that moves back and forth to dredge the sediments and make sure that the berth location is fully dredged.\n", + "\n", + "The scenarios vary based on the type of equipment being used, number of equipment from each type, and the total amount of sediment being dredged.\n", + "The simulations are done for one Backhoe dredger that incorporates multiple identical barges to re-allocate the dredged sediments. Moreover, TSHDs can be also used for the re-allocation of sediments. All the dredged material are discharged in the dump location.\n", + "\n", + "You can refer to the following references to get more information on how this simulation works.\n", + "\n", + " * https://github.com/TUDelft-CITG/OpenCLSim/blob/master/notebooks/34_fleet_optimization.ipynb\n", + " * https://pure.tudelft.nl/ws/portalfiles/portal/161150813/Terra_et_Aqua_170_Summer_2023_TECHNICAL_single_pages.pdf\n", + "\n", + "Multiple simulation scenarios are developed to compare how duration and emission of the whole project change with different types and numbers of equipment.\n", + "\n", + "The fleet list can be found here: https://www.iadc-dredging.com/publication/iadc-fleet-list-2023-2/ " + ] + }, + { + "cell_type": "markdown", + "id": "9c22bf48", + "metadata": {}, + "source": [ + "### 0. Import libraries\n", + "Libraries are imported which can be used for defining the objects in the simulation, implement the simulation, and visualize the results." + ] + }, { "cell_type": "code", - "execution_count": 12, - "id": "5c19484c", + "execution_count": 183, + "id": "d055e0b6", "metadata": {}, "outputs": [], "source": [ + "# libraries used for numerical and data analysis\n", "import pandas as pd\n", "import shapely\n", - "import simpy\n", "from numpy import random\n", - "import gurobipy\n", "\n", + "# libraries used for the simulation\n", + "import simpy\n", "import openclsim.core as core\n", "import openclsim.model as model\n", - "import openclsim.plot as plot\n", - "from openclsim.io import get_activity_resources, get_activity_log, get_activities, get_concepts\n", - "from openclsim.io import get_tree_as_list, get_ranges_dataframe" + "import openclsim.plot as plot" + ] + }, + { + "cell_type": "markdown", + "id": "62ca1b2a", + "metadata": {}, + "source": [ + "### 1. Define object classes\n", + "Object classes are used to assign different attributes to objects (Sites for important locations and TransportProcessingResource for vessels).\n", + "\n", + "They are basically referred to the source code of OpenCLSim by calling the classes that are used to define these attributes." ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 184, "id": "5785e657", "metadata": {}, "outputs": [], @@ -51,9 +95,28 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "1c95e1ce", + "metadata": {}, + "source": [ + "### 2. Define objects (sites, vessels, and activities) and run the simulation\n", + "\n", + "The following code defines all the objects being used during the simulation (sites and vessels) and the activities that trigger the simulation for these objects.\n", + "\n", + "The main structure of the simulation consists of the following items:\n", + "* define the simulation run that consists of variables that can be controlled during the simulation\n", + "* define the simulation environment along with start/stop time for the simulation\n", + "* define the registry that makes sure all the processes are registered within the simulation environment\n", + "* define the sites (berth, dump, etc.) with their specific characteristics\n", + "* define the vessels with their specific characteristics (the number of vessels of the same type can also be controlled in the simulation)\n", + "* define the activities that are used to simulate the processes for vessels among the sites\n", + "* the desired processes should be registered before running the simulation" + ] + }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 185, "id": "43916251", "metadata": {}, "outputs": [], @@ -261,16 +324,77 @@ " }" ] }, + { + "cell_type": "markdown", + "id": "207d82a7", + "metadata": {}, + "source": [ + "### 3. Control the problem variables and show the output\n", + "The problem variables need to be controled to determine the simulation output for different scenarios." + ] + }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 186, "id": "21b2b98c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover tshd0 destination berth\n", + "mover tshd1 destination berth\n", + "mover barge0 destination berth\n", + "mover barge1 destination berth\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover tshd0 destination dump\n", + "mover tshd1 destination dump\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "mover tshd0 destination berth\n", + "mover tshd1 destination berth\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover barge0 destination dump\n", + "mover tshd0 destination dump\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "mover tshd1 destination dump\n", + "mover barge0 destination berth\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover tshd0 destination berth\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover tshd1 destination berth\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover barge1 destination dump\n", + "mover tshd0 destination dump\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "mover barge1 destination berth\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover tshd1 destination dump\n", + "mover tshd0 destination berth\n", + "updating to destination geometry POINT (4.18055556 52.18664444)\n", + "mover barge0 destination dump\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "mover tshd0 destination dump\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n", + "mover barge1 destination dump\n", + "updating to destination geometry POINT (4.25222222 52.11428333)\n" + ] + } + ], "source": [ "nr_barges = 2\n", "nr_tshds = 2\n", - "res = run(nr_barges, nr_tshds , 30000)\n", + "total_amount = 30000\n", + "res = run(nr_barges, nr_tshds , total_amount)\n", "vessels = res['vessels']\n", "activities_backhoe_barge = res['activities_backhoe_barge']\n", "activities_tshd = res['activities_tshd']\n", @@ -278,9 +402,26 @@ "dump = res['dump']" ] }, + { + "cell_type": "markdown", + "id": "1b7a3bc5", + "metadata": {}, + "source": [ + "### 4. Visualizing the results" + ] + }, + { + "cell_type": "markdown", + "id": "0d642bc8", + "metadata": {}, + "source": [ + "#### 4.1. Vessel data log\n", + "Vessels' logs can be obtained by a pre-defined function (get_log_dataframe) in OpenCLSim." + ] + }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 187, "id": "fbf53501", "metadata": {}, "outputs": [ @@ -551,9 +692,18 @@ "display(plot.get_log_dataframe(berth, [*activities_tshd.values(), *activities_backhoe_barge.values()]))" ] }, + { + "cell_type": "markdown", + "id": "fc97ee9e", + "metadata": {}, + "source": [ + "#### 4.2. Gantt chart\n", + "Gantt chart can be drawn for each vessel based on the activities registered in the simulation" + ] + }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 188, "id": "7cf054e1", "metadata": {}, "outputs": [ @@ -594,7 +744,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(83,34,161)", + "color": "rgb(116,104,24)", "width": 10 }, "mode": "lines", @@ -649,33 +799,33 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(97,48,175)", + "color": "rgb(130,118,38)", "width": 10 }, "mode": "lines", - "name": "sailing full: tshd0", + "name": "loading: tshd0", "type": "scatter", "x": [ + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", "1970-01-01T03:00:00", "1970-01-01T03:00:00", - "1970-01-01T04:30:00", - "1970-01-01T04:30:00", - "1970-01-01T04:30:00", + "1970-01-01T03:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", "1970-01-01T08:00:00", "1970-01-01T08:00:00", - "1970-01-01T09:30:00", - "1970-01-01T09:30:00", - "1970-01-01T09:30:00", + "1970-01-01T08:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", "1970-01-01T13:00:00", "1970-01-01T13:00:00", - "1970-01-01T14:30:00", - "1970-01-01T14:30:00", - "1970-01-01T14:30:00", + "1970-01-01T13:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", "1970-01-01T18:00:00", "1970-01-01T18:00:00", - "1970-01-01T19:30:00", - "1970-01-01T19:30:00", - "1970-01-01T19:30:00" + "1970-01-01T18:00:00" ], "y": [ "tshd0", @@ -704,33 +854,33 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(111,62,189)", + "color": "rgb(144,132,52)", "width": 10 }, "mode": "lines", - "name": "loading: tshd0", + "name": "sailing empty: tshd0", "type": "scatter", "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", "1970-01-01T01:00:00", "1970-01-01T01:00:00", - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", + "1970-01-01T01:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", "1970-01-01T06:00:00", "1970-01-01T06:00:00", - "1970-01-01T08:00:00", - "1970-01-01T08:00:00", - "1970-01-01T08:00:00", + "1970-01-01T06:00:00", + "1970-01-01T10:00:00", + "1970-01-01T10:00:00", "1970-01-01T11:00:00", "1970-01-01T11:00:00", - "1970-01-01T13:00:00", - "1970-01-01T13:00:00", - "1970-01-01T13:00:00", + "1970-01-01T11:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", "1970-01-01T16:00:00", "1970-01-01T16:00:00", - "1970-01-01T18:00:00", - "1970-01-01T18:00:00", - "1970-01-01T18:00:00" + "1970-01-01T16:00:00" ], "y": [ "tshd0", @@ -759,33 +909,33 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(125,76,203)", + "color": "rgb(158,146,66)", "width": 10 }, "mode": "lines", - "name": "sailing empty: tshd0", + "name": "sailing full: tshd0", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T01:00:00", - "1970-01-01T01:00:00", - "1970-01-01T01:00:00", - "1970-01-01T05:00:00", - "1970-01-01T05:00:00", - "1970-01-01T06:00:00", - "1970-01-01T06:00:00", - "1970-01-01T06:00:00", - "1970-01-01T10:00:00", - "1970-01-01T10:00:00", - "1970-01-01T11:00:00", - "1970-01-01T11:00:00", - "1970-01-01T11:00:00", - "1970-01-01T15:00:00", - "1970-01-01T15:00:00", - "1970-01-01T16:00:00", - "1970-01-01T16:00:00", - "1970-01-01T16:00:00" + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T09:30:00", + "1970-01-01T09:30:00", + "1970-01-01T09:30:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T14:30:00", + "1970-01-01T14:30:00", + "1970-01-01T14:30:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T19:30:00", + "1970-01-01T19:30:00", + "1970-01-01T19:30:00" ], "y": [ "tshd0", @@ -814,28 +964,28 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(139,90,217)", + "color": "rgb(172,160,80)", "width": 10 }, "mode": "lines", - "name": "loading: tshd1", + "name": "sailing empty: tshd1", "type": "scatter", "x": [ + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", "1970-01-01T01:00:00", "1970-01-01T01:00:00", - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", - "1970-01-01T07:00:00", - "1970-01-01T07:00:00", - "1970-01-01T09:00:00", - "1970-01-01T09:00:00", - "1970-01-01T09:00:00", - "1970-01-01T13:00:00", - "1970-01-01T13:00:00", - "1970-01-01T15:00:00", - "1970-01-01T15:00:00", - "1970-01-01T15:00:00" + "1970-01-01T01:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T06:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00" ], "y": [ "tshd1", @@ -859,28 +1009,28 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(153,104,231)", + "color": "rgb(186,174,94)", "width": 10 }, "mode": "lines", - "name": "sailing full: tshd1", + "name": "unloading: tshd1", "type": "scatter", "x": [ - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", "1970-01-01T04:30:00", "1970-01-01T04:30:00", - "1970-01-01T04:30:00", - "1970-01-01T09:00:00", - "1970-01-01T09:00:00", - "1970-01-01T10:30:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", + "1970-01-01T05:00:00", "1970-01-01T10:30:00", "1970-01-01T10:30:00", - "1970-01-01T15:00:00", - "1970-01-01T15:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", + "1970-01-01T11:00:00", "1970-01-01T16:30:00", "1970-01-01T16:30:00", - "1970-01-01T16:30:00" + "1970-01-01T17:00:00", + "1970-01-01T17:00:00", + "1970-01-01T17:00:00" ], "y": [ "tshd1", @@ -904,28 +1054,28 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(167,118,245)", + "color": "rgb(200,188,108)", "width": 10 }, "mode": "lines", - "name": "sailing empty: tshd1", + "name": "sailing full: tshd1", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T01:00:00", - "1970-01-01T01:00:00", - "1970-01-01T01:00:00", - "1970-01-01T05:00:00", - "1970-01-01T05:00:00", - "1970-01-01T06:00:00", - "1970-01-01T06:00:00", - "1970-01-01T06:00:00", - "1970-01-01T11:00:00", - "1970-01-01T11:00:00", - "1970-01-01T12:00:00", - "1970-01-01T12:00:00", - "1970-01-01T12:00:00" + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T04:30:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T10:30:00", + "1970-01-01T10:30:00", + "1970-01-01T10:30:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T16:30:00", + "1970-01-01T16:30:00", + "1970-01-01T16:30:00" ], "y": [ "tshd1", @@ -949,28 +1099,28 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(181,132,3)", + "color": "rgb(214,202,122)", "width": 10 }, "mode": "lines", - "name": "unloading: tshd1", + "name": "loading: tshd1", "type": "scatter", "x": [ - "1970-01-01T04:30:00", - "1970-01-01T04:30:00", - "1970-01-01T05:00:00", - "1970-01-01T05:00:00", - "1970-01-01T05:00:00", - "1970-01-01T10:30:00", - "1970-01-01T10:30:00", - "1970-01-01T11:00:00", - "1970-01-01T11:00:00", - "1970-01-01T11:00:00", - "1970-01-01T16:30:00", - "1970-01-01T16:30:00", - "1970-01-01T17:00:00", - "1970-01-01T17:00:00", - "1970-01-01T17:00:00" + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T13:00:00", + "1970-01-01T13:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00" ], "y": [ "tshd1", @@ -994,7 +1144,42 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(195,146,17)", + "color": "rgb(228,216,136)", + "width": 10 + }, + "mode": "lines", + "name": "unloading: barge0", + "type": "scatter", + "x": [ + "1970-01-01T08:30:00", + "1970-01-01T08:30:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T09:00:00", + "1970-01-01T17:30:00", + "1970-01-01T17:30:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00", + "1970-01-01T18:00:00" + ], + "y": [ + "barge0", + "barge0", + "barge0", + "barge0", + null, + "barge0", + "barge0", + "barge0", + "barge0", + null + ] + }, + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(242,230,150)", "width": 10 }, "mode": "lines", @@ -1049,7 +1234,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(209,160,31)", + "color": "rgb(0,244,164)", "width": 10 }, "mode": "lines", @@ -1084,7 +1269,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(223,174,45)", + "color": "rgb(14,2,178)", "width": 10 }, "mode": "lines", @@ -1119,34 +1304,34 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(237,188,59)", + "color": "rgb(28,16,192)", "width": 10 }, "mode": "lines", - "name": "unloading: barge0", + "name": "sailing empty:barge1", "type": "scatter", "x": [ - "1970-01-01T08:30:00", - "1970-01-01T08:30:00", - "1970-01-01T09:00:00", - "1970-01-01T09:00:00", - "1970-01-01T09:00:00", - "1970-01-01T17:30:00", - "1970-01-01T17:30:00", - "1970-01-01T18:00:00", - "1970-01-01T18:00:00", - "1970-01-01T18:00:00" + "1970-01-01T00:00:00", + "1970-01-01T00:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T01:00:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00", + "1970-01-01T15:00:00" ], "y": [ - "barge0", - "barge0", - "barge0", - "barge0", + "barge1", + "barge1", + "barge1", + "barge1", null, - "barge0", - "barge0", - "barge0", - "barge0", + "barge1", + "barge1", + "barge1", + "barge1", null ] }, @@ -1154,23 +1339,33 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(251,202,73)", + "color": "rgb(42,30,206)", "width": 10 }, "mode": "lines", - "name": "unloading: barge1", + "name": "loading:barge1", "type": "scatter", "x": [ - "1970-01-01T13:30:00", - "1970-01-01T13:30:00", - "1970-01-01T14:00:00", - "1970-01-01T14:00:00", - "1970-01-01T14:00:00", - "1970-01-01T21:30:00", - "1970-01-01T21:30:00", - "1970-01-01T22:00:00", - "1970-01-01T22:00:00", - "1970-01-01T22:00:00" + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T08:00:00", + "1970-01-01T08:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T16:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00" ], "y": [ "barge1", @@ -1182,6 +1377,16 @@ "barge1", "barge1", "barge1", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", + null, + "backhoe", + "backhoe", + "backhoe", + "backhoe", null ] }, @@ -1189,23 +1394,23 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(9,216,87)", + "color": "rgb(56,44,220)", "width": 10 }, "mode": "lines", - "name": "sailing empty:barge1", + "name": "sailing full:barge1", "type": "scatter", "x": [ - "1970-01-01T00:00:00", - "1970-01-01T00:00:00", - "1970-01-01T01:00:00", - "1970-01-01T01:00:00", - "1970-01-01T01:00:00", - "1970-01-01T14:00:00", - "1970-01-01T14:00:00", - "1970-01-01T15:00:00", - "1970-01-01T15:00:00", - "1970-01-01T15:00:00" + "1970-01-01T12:00:00", + "1970-01-01T12:00:00", + "1970-01-01T13:30:00", + "1970-01-01T13:30:00", + "1970-01-01T13:30:00", + "1970-01-01T20:00:00", + "1970-01-01T20:00:00", + "1970-01-01T21:30:00", + "1970-01-01T21:30:00", + "1970-01-01T21:30:00" ], "y": [ "barge1", @@ -1224,23 +1429,23 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(23,230,101)", + "color": "rgb(70,58,234)", "width": 10 }, "mode": "lines", - "name": "sailing full:barge1", + "name": "unloading: barge1", "type": "scatter", "x": [ - "1970-01-01T12:00:00", - "1970-01-01T12:00:00", "1970-01-01T13:30:00", "1970-01-01T13:30:00", - "1970-01-01T13:30:00", - "1970-01-01T20:00:00", - "1970-01-01T20:00:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", + "1970-01-01T14:00:00", "1970-01-01T21:30:00", "1970-01-01T21:30:00", - "1970-01-01T21:30:00" + "1970-01-01T22:00:00", + "1970-01-01T22:00:00", + "1970-01-01T22:00:00" ], "y": [ "barge1", @@ -1259,7 +1464,7 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(37,244,115)", + "color": "rgb(84,72,248)", "width": 10 }, "mode": "lines", @@ -1314,99 +1519,44 @@ "connectgaps": false, "hoverinfo": "y+name", "line": { - "color": "rgb(51,2,129)", - "width": 10 - }, - "mode": "lines", - "name": "loading:barge0", - "type": "scatter", - "x": [ - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", - "1970-01-01T07:00:00", - "1970-01-01T07:00:00", - "1970-01-01T07:00:00", - "1970-01-01T12:00:00", - "1970-01-01T12:00:00", - "1970-01-01T16:00:00", - "1970-01-01T16:00:00", - "1970-01-01T16:00:00", - "1970-01-01T03:00:00", - "1970-01-01T03:00:00", - "1970-01-01T07:00:00", - "1970-01-01T07:00:00", - "1970-01-01T07:00:00", - "1970-01-01T12:00:00", - "1970-01-01T12:00:00", - "1970-01-01T16:00:00", - "1970-01-01T16:00:00", - "1970-01-01T16:00:00" - ], - "y": [ - "barge0", - "barge0", - "barge0", - "barge0", - null, - "barge0", - "barge0", - "barge0", - "barge0", - null, - "backhoe", - "backhoe", - "backhoe", - "backhoe", - null, - "backhoe", - "backhoe", - "backhoe", - "backhoe", - null - ] - }, - { - "connectgaps": false, - "hoverinfo": "y+name", - "line": { - "color": "rgb(65,16,143)", + "color": "rgb(98,86,6)", "width": 10 }, "mode": "lines", - "name": "loading:barge1", + "name": "loading:barge0", "type": "scatter", "x": [ - "1970-01-01T08:00:00", - "1970-01-01T08:00:00", - "1970-01-01T12:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", "1970-01-01T12:00:00", "1970-01-01T12:00:00", "1970-01-01T16:00:00", "1970-01-01T16:00:00", - "1970-01-01T20:00:00", - "1970-01-01T20:00:00", - "1970-01-01T20:00:00", - "1970-01-01T08:00:00", - "1970-01-01T08:00:00", - "1970-01-01T12:00:00", + "1970-01-01T16:00:00", + "1970-01-01T03:00:00", + "1970-01-01T03:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", + "1970-01-01T07:00:00", "1970-01-01T12:00:00", "1970-01-01T12:00:00", "1970-01-01T16:00:00", "1970-01-01T16:00:00", - "1970-01-01T20:00:00", - "1970-01-01T20:00:00", - "1970-01-01T20:00:00" + "1970-01-01T16:00:00" ], "y": [ - "barge1", - "barge1", - "barge1", - "barge1", + "barge0", + "barge0", + "barge0", + "barge0", null, - "barge1", - "barge1", - "barge1", - "barge1", + "barge0", + "barge0", + "barge0", + "barge0", null, "backhoe", "backhoe", @@ -2274,9 +2424,9 @@ } }, "text/html": [ - "