diff --git a/notebooks/10_MultiContainer.ipynb b/notebooks/10_MultiContainer.ipynb index 55039bdb..adb84ee2 100644 --- a/notebooks/10_MultiContainer.ipynb +++ b/notebooks/10_MultiContainer.ipynb @@ -1628,7 +1628,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.13" } }, "nbformat": 4, 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.ipynb b/notebooks/32_openclsim_opentnsim.ipynb new file mode 100644 index 00000000..b4b4ae91 --- /dev/null +++ b/notebooks/32_openclsim_opentnsim.ipynb @@ -0,0 +1,275 @@ +{ + "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", + "\n", + "import logging\n", + "logging.basicConfig()" + ] + }, + { + "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": 3, + "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": 6, + "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": [ + { + "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", + "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
07017847c-7178-4b59-bc7d-95ae3bf5ba851970-01-01 00:00:00.000000START
17017847c-7178-4b59-bc7d-95ae3bf5ba851970-01-01 00:15:42.824591STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\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", + "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/notebooks/32_openclsim_opentnsim_moving.ipynb b/notebooks/32_openclsim_opentnsim_moving.ipynb new file mode 100644 index 00000000..9f28544f --- /dev/null +++ b/notebooks/32_openclsim_opentnsim_moving.ipynb @@ -0,0 +1,413 @@ +{ + "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": [ + { + "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", + "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
0ef9c3b84-d4c9-4148-9b4f-99af534137191970-01-01 00:00:00.000000START
1ef9c3b84-d4c9-4148-9b4f-99af534137191970-01-01 00:15:42.824591STOP
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\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", + "1 STOP " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(activity))" + ] + } + ], + "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 +} 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 +} diff --git a/notebooks/33_Accessibility_Dredging.ipynb b/notebooks/33_Accessibility_Dredging.ipynb new file mode 100644 index 00000000..4d1546ed --- /dev/null +++ b/notebooks/33_Accessibility_Dredging.ipynb @@ -0,0 +1,5534 @@ +{ + "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": 41, + "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": 42, + "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": 43, + "id": "20b9605b", + "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", + " core.HasActualWaterLevel,\n", + " core.HasLowestAstronomicalTide,\n", + " core.HasMaintainedBedLevel,\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", + " 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", + " {},\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": 44, + "id": "35b65868-4fb1-4d63-9e30-e5027a4e00cf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 44, + "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": 45, + "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": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "depth_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "94ec8119-ee10-42bb-be3e-06340c3630c8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 46, + "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": 47, + "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", + " \"AWL\": -0.13,\n", + " \"LAT\": -0.92,\n", + " \"MBL\": -17,\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", + " \"AWL\": -0.13,\n", + " \"LAT\": -0.92,\n", + " \"MBL\": -17,\n", + "}\n", + "berth = Site(**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", + " \"AWL\": -0.13,\n", + " \"LAT\": -0.92,\n", + " \"MBL\": -17,\n", + "}\n", + "dump = Site(**data_dump)" + ] + }, + { + "cell_type": "markdown", + "id": "82a0a144", + "metadata": {}, + "source": [ + "##### 3.2. Create vessel objects" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "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", + " \"draught\": 10,\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", + " \"draught\": 15,\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": 49, + "id": "4d0d0350", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "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", + " (\n", + " plugin.HasDepthPluginActivity,\n", + " model.MoveActivity,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "4b621a99", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify the amount of container and duration of activities\n", + "amount = 10\n", + "duration = 200\n", + "\n", + "# Specify dredging subprocesses\n", + "dredging_subprocesses = [\n", + " MoveWithDepthActivity(\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", + " ),\n", + " ShiftAmountWithDepthActivity(\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", + " depth_criteria=loading_crit,\n", + " depth_df=depth_df\n", + " ),\n", + " MoveWithDepthActivity(\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", + " 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", + " depth_criteria=loading_crit,\n", + " depth_df=depth_df\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": 52, + "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", + " MoveWithDepthActivity(\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", + " 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", + " depth_criteria=loading_crit,\n", + " depth_df=depth_df\n", + " ),\n", + " MoveWithDepthActivity(\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", + "# 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": 53, + "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": 54, + "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" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "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": 55, + "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" + } + ], + "source": [ + "# Inspect dredging vessel log\n", + "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "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" + } + ], + "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": 57, + "id": "fba2bcc6", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "connectgaps": false, + "hoverinfo": "y+name", + "line": { + "color": "rgb(58,3,116)", + "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(94,39,152)", + "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(130,75,188)", + "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(166,111,224)", + "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(202,147,4)", + "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(238,183,40)", + "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(18,219,76)", + "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": 58, + "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(106,104,242)", + "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(142,140,22)", + "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(178,176,58)", + "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(214,212,94)", + "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(250,248,130)", + "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(30,28,166)", + "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(66,64,202)", + "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": 59, + "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": 60, + "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 +} diff --git a/notebooks/33_Accessibility_Dredging_NoTide.ipynb b/notebooks/33_Accessibility_Dredging_NoTide.ipynb new file mode 100644 index 00000000..47b284c5 --- /dev/null +++ b/notebooks/33_Accessibility_Dredging_NoTide.ipynb @@ -0,0 +1,1288 @@ +{ + "cells": [ + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "3b8fbfc7", + "metadata": {}, + "source": [ + "\n", + "### Maintenance dredging for accessibility purpose\n", + "\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", + "![image.png](attachment:image.png)\n", + "\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", + "DCL: Dredge Criteria Level (DCL)\n", + "SR: Sedimentation Rate\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "id": "6e50d2c1", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "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": 2, + "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": 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", + " 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": 4, + "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": 5, + "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": 6, + "id": "4d0d0350", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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": 8, + "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": 9, + "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": 10, + "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": 11, + "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": 12, + "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.000000a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
11970-01-04 12:00:00.000000a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
21970-01-04 12:00:00.000000a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
31970-01-04 12:32:00.113018a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
41970-01-04 13:10:20.207200a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
51970-01-08 01:10:20.207200a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
61970-01-08 01:10:20.207200a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
71970-01-08 01:42:20.320219a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
81970-01-08 02:20:40.414401a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
91970-01-11 14:20:40.414401a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
101970-01-11 14:20:40.414401a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
111970-01-11 14:52:40.527419a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
121970-01-11 15:31:00.621601a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
131970-01-15 03:31:00.621601a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
141970-01-15 03:31:00.621601a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
151970-01-15 04:03:00.734620a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
161970-01-15 04:41:20.828802a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
171970-01-18 16:41:20.828802a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
181970-01-18 16:41:20.828802a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
191970-01-18 17:13:20.941820a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
201970-01-18 17:51:41.036002a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
211970-01-22 05:51:41.036002a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
221970-01-22 05:51:41.036002a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
231970-01-22 06:23:41.149021a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
241970-01-22 07:02:01.243203a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
251970-01-25 19:02:01.243203a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
261970-01-25 19:02:01.243203a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
271970-01-25 19:34:01.356221a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
281970-01-25 20:12:21.450403a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
291970-01-29 08:12:21.450403a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
301970-01-29 08:12:21.450403a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
311970-01-29 08:44:21.563422a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
321970-01-29 09:22:41.657604a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_START{}{'type': 'plugin', 'ref': 'dredging'}
331970-02-01 21:22:41.657604a49ba0c7-5cf3-4643-974a-cfe2b3c41110WAIT_STOP{}{'type': 'plugin', 'ref': 'dredging'}
341970-02-01 21:22:41.657604a49ba0c7-5cf3-4643-974a-cfe2b3c41110START{}{}
351970-02-01 21:54:41.770622a49ba0c7-5cf3-4643-974a-cfe2b3c41110STOP{}{}
\n", + "
" + ], + "text/plain": [ + " Timestamp ActivityID \\\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", + "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": 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", + "id": "37887fe1", + "metadata": {}, + "source": [ + "#### 5. Inspect results" + ] + }, + { + "cell_type": "markdown", + "id": "52e8354b", + "metadata": {}, + "source": [ + "##### 5.1. Inspect logs" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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": 14, + "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": "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 +} diff --git a/notebooks/33_Accessibility_Dredging_Tide.ipynb b/notebooks/33_Accessibility_Dredging_Tide.ipynb new file mode 100644 index 00000000..a74b89d4 --- /dev/null +++ b/notebooks/33_Accessibility_Dredging_Tide.ipynb @@ -0,0 +1,960 @@ +{ + "cells": [ + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "3b8fbfc7", + "metadata": {}, + "source": [ + "\n", + "### Maintenance dredging for accessibility purpose\n", + "\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", + "![image.png](attachment:image.png)\n", + "\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", + "DCL: Dredge Criteria Level (DCL)\n", + "SR: Sedimentation Rate\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "id": "6e50d2c1", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f22b1f5f", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "\n", + "import networkx as nx\n", + "import shapely\n", + "import shapely.geometry\n", + "import pyproj\n", + "import itertools\n", + "\n", + "\n", + "import datetime as dt\n", + "import time\n", + "import simpy\n", + "import openclsim.core as core\n", + "import openclsim.core.access as access\n", + "import openclsim.model as model\n", + "import openclsim.plugins as plugin\n", + "import openclsim.plot as plot\n", + "import openclsim.plugins.access\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": 2, + "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": 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", + " 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", + " access.HasTide,\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": 4, + "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": 5, + "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", + " \"UKC\": 0.3,\n", + " \"T\": 5\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", + " \"UKC\": 0.3,\n", + " \"T\": 18\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": 6, + "id": "4d0d0350", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a8cf1902-1f00-4363-8a27-0ccd513fc366", + "metadata": {}, + "outputs": [], + "source": [ + "# Define custom activities with Depth Plugin\n", + "# Here the order is important because HasDredge and HasTidePluginActivities are also MoveActivities\n", + "MoveWhenDredgingNeeded = type(\n", + " \"MoveWhenDredgingNeeded\",\n", + " (\n", + " plugin.HasDredgePluginActivity,\n", + " plugin.HasTidePluginActivity,\n", + " model.MoveActivity,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "MoveWhenTideAllows = type(\n", + " \"MoveWhenTideAllows\",\n", + " (\n", + " plugin.HasTidePluginActivity,\n", + " model.MoveActivity,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "08868748-d718-479b-90c8-29c8c8e8eb39", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "switch [False False False ... False False False]\n", + "switch [False False False ... False False False]\n" + ] + }, + { + "data": { + "text/plain": [ + "1410.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# env.now\n", + "t_now = 0\n", + "t_hours = t_now / 3600.0\n", + "# time to look ahead in the future for tidal windows (2 days ahead)\n", + "t_max = 12.42 * 4\n", + "threshold = 0.3000000000000007\n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "tidal_windows_df = openclsim.plugins.access.compute_tidal_windows(openclsim.plugins.access.water_level, t_now, t_max, threshold)\n", + "\n", + " \n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "t = np.arange(t_now, t_max, 1 / 60)\n", + "water_levels = openclsim.plugins.access.water_level(t)\n", + "\n", + "ax.plot(t, water_levels)\n", + "tidal_windows_df[tidal_windows_df.tide_allows].plot('t1', 'water_level_t1', style='r+', ax=ax, legend=False)\n", + "ax.hlines([threshold], 0, 50, colors='red')\n", + "tidal_windows_df[tidal_windows_df.tide_allows].plot('t0', 'water_level_t0', style='go', ax=ax, legend=False)\n", + "\n", + "\n", + "tidal_windows_df = openclsim.plugins.access.compute_tidal_windows(openclsim.plugins.access.water_level, my_env.now * 3600, t_max, threshold)\n", + "selected_windows = tidal_windows_df[tidal_windows_df.tide_allows]\n", + "selected_window = selected_windows.iloc[0]\n", + "time_to_start_sailing = (selected_window.t0 * 3600)\n", + "delay = time_to_start_sailing - my_env.now\n", + "delay" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + "tide_criteria = plugin.TideCriterion(\n", + " name=\"tide_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", + " tide_criteria=tide_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": 10, + "id": "d272ff48", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify seagoing subprocesses\n", + "requested_resources = {}\n", + "\n", + "dredge_criteria = plugin.DredgeCriterion(\n", + " name=\"dredge_crit\",\n", + ")\n", + "\n", + "tide_criteria = plugin.TideCriterion(\n", + " name=\"tide_crit\",\n", + ")\n", + "\n", + "seagoing_subprocesses = [\n", + " model.BasicActivity(\n", + " env=my_env, name=\"interval time\", registry=registry, duration=200\n", + " ),\n", + " MoveWhenTideAllows(\n", + " env=my_env,\n", + " name=\"sailing full seagoing vessel\",\n", + " registry=registry,\n", + " mover=vessel02,\n", + " destination=berth,\n", + " tide_criteria=tide_criteria,\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": 11, + "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": 12, + "id": "67e9ea06", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover seagoing vessel destination berth\n", + "check tidal criteria 200\n", + "wait until we tidal window allows to sail\n", + "threshold 0.3000000000000007 ABL -18 UKC 0.3 T 18\n", + "switch [False False False ... False False False]\n", + "waiting for 1229.9999999999998 seconds\n", + "activity log <__main__.MoveWhenTideAllows object at 0x000001D27CD6F2B0>\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" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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", + "
TimestampActivityIDActivityStateObjectStateActivityLabelname
01970-01-01 00:03:20.0000008606b38c-8c04-4f9a-b4ef-e7de7bbacac7WAIT_START{}{'type': 'plugin', 'ref': 'tide'}sailing full seagoing vessel
11970-01-01 00:23:50.0000008606b38c-8c04-4f9a-b4ef-e7de7bbacac7WAIT_STOP{}{'type': 'plugin', 'ref': 'tide'}sailing full seagoing vessel
21970-01-01 00:23:50.0000008606b38c-8c04-4f9a-b4ef-e7de7bbacac7START{}{}sailing full seagoing vessel
31970-01-01 00:58:43.4746298606b38c-8c04-4f9a-b4ef-e7de7bbacac7STOP{}{}sailing full seagoing vessel
\n", + "
" + ], + "text/plain": [ + " Timestamp ActivityID \\\n", + "0 1970-01-01 00:03:20.000000 8606b38c-8c04-4f9a-b4ef-e7de7bbacac7 \n", + "1 1970-01-01 00:23:50.000000 8606b38c-8c04-4f9a-b4ef-e7de7bbacac7 \n", + "2 1970-01-01 00:23:50.000000 8606b38c-8c04-4f9a-b4ef-e7de7bbacac7 \n", + "3 1970-01-01 00:58:43.474629 8606b38c-8c04-4f9a-b4ef-e7de7bbacac7 \n", + "\n", + " ActivityState ObjectState ActivityLabel \\\n", + "0 WAIT_START {} {'type': 'plugin', 'ref': 'tide'} \n", + "1 WAIT_STOP {} {'type': 'plugin', 'ref': 'tide'} \n", + "2 START {} {} \n", + "3 STOP {} {} \n", + "\n", + " name \n", + "0 sailing full seagoing vessel \n", + "1 sailing full seagoing vessel \n", + "2 sailing full seagoing vessel \n", + "3 sailing full seagoing vessel " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# the seagoing log is now not in the ship but in the plugin....\n", + "seagoing_cycle_log_df = pd.DataFrame(activities_seagoing_vessel.sub_processes[1].logbook)\n", + "seagoing_cycle_log_df\n", + "\n", + "name_by_id = {key: list(obj)[0].name for (key, obj) in registry['id'].items()}\n", + "name_by_id\n", + "\n", + "seagoing_cycle_log_df.merge(pd.DataFrame(pd.Series(name_by_id), columns=['name']), left_on='ActivityID', right_index=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d502a3e0-1a54-4def-a7bd-4aed1d46f6c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: []\n", + "Index: []" + ] + }, + "execution_count": 14, + "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": 15, + "id": "e96e09e8", + "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": [ + "# Inspect dredging vessel log\n", + "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "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:23:50.000000STARTPOINT (3.637610458072877 52.10701582514347)5
1sailing full seagoing vessel1970-01-01 00:58:43.474629STOPPOINT (4.062705498083785 51.95909715255291)5
2unloading seagoing vessel1970-01-01 00:58:43.474629STARTPOINT (4.062705498083785 51.95909715255291)5
3unloading seagoing vessel1970-01-01 01:03:43.474629STOPPOINT (4.062705498083785 51.95909715255291)0
4sailing empty seagoing vessel1970-01-01 01:03:43.474629STARTPOINT (4.062705498083785 51.95909715255291)0
5sailing empty seagoing vessel1970-01-01 01:40:56.514232STOPPOINT (3.637610458072877 52.10701582514347)0
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sailing full seagoing vessel 1970-01-01 00:23:50.000000 START \n", + "1 sailing full seagoing vessel 1970-01-01 00:58:43.474629 STOP \n", + "2 unloading seagoing vessel 1970-01-01 00:58:43.474629 START \n", + "3 unloading seagoing vessel 1970-01-01 01:03:43.474629 STOP \n", + "4 sailing empty seagoing vessel 1970-01-01 01:03:43.474629 START \n", + "5 sailing empty seagoing vessel 1970-01-01 01:40:56.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": "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 +} 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 +} diff --git a/notebooks/34_Multiple_Seagoing_Vessels.ipynb b/notebooks/34_Multiple_Seagoing_Vessels.ipynb new file mode 100644 index 00000000..58680e5e --- /dev/null +++ b/notebooks/34_Multiple_Seagoing_Vessels.ipynb @@ -0,0 +1,761 @@ +{ + "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": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\asepehri\\AppData\\Local\\Temp\\ipykernel_16772\\4074114752.py:80: UserWarning:\n", + "\n", + "\n", + "\n", + "The arrowsize keyword argument is not applicable when drawing edges\n", + "with LineCollection.\n", + "\n", + "To make this warning go away, either specify `arrows=True` to\n", + "force FancyArrowPatches or use the default value for arrowsize.\n", + "Note that using FancyArrowPatches may be slow for large graphs.\n", + "\n", + "\n" + ] + }, + { + "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", + "# 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", + "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.Graph()\n", + "\n", + "# Add nodes to the network\n", + "locations = [berth] + locations\n", + "for location in locations:\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", + "\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", + " 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": 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": [ + { + "ename": "TypeError", + "evalue": "__init__() missing 1 required positional argument: 'env'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[8], line 13\u001b[0m\n\u001b[0;32m 2\u001b[0m data_vessel01 \u001b[38;5;241m=\u001b[39m {\n\u001b[0;32m 3\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124menv\u001b[39m\u001b[38;5;124m\"\u001b[39m: my_env,\n\u001b[0;32m 4\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;124mdredging vessel\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mroute\u001b[39m\u001b[38;5;124m\"\u001b[39m: nx\u001b[38;5;241m.\u001b[39mdijkstra_path(my_env\u001b[38;5;241m.\u001b[39mgraph, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mberth\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdump\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 11\u001b[0m }\n\u001b[0;32m 12\u001b[0m \u001b[38;5;66;03m# instantiate vessel_01 \u001b[39;00m\n\u001b[1;32m---> 13\u001b[0m vessel01 \u001b[38;5;241m=\u001b[39m TransportProcessingResource(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdata_vessel01)\n\u001b[0;32m 14\u001b[0m \u001b[38;5;66;03m# assert not vessel01.metadata\u001b[39;00m\n", + "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:377\u001b[0m, in \u001b[0;36mMovable.__init__\u001b[1;34m(self, v, *args, **kwargs)\u001b[0m\n\u001b[0;32m 376\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, v, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m--> 377\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 378\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 379\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mv \u001b[38;5;241m=\u001b[39m v\n", + "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:76\u001b[0m, in \u001b[0;36mLocatable.__init__\u001b[1;34m(self, geometry, node, *args, **kwargs)\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, geometry, node\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 76\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 77\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 78\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgeometry \u001b[38;5;241m=\u001b[39m geometry\n", + "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:361\u001b[0m, in \u001b[0;36mRouteable.__init__\u001b[1;34m(self, route, complete_path, *args, **kwargs)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, route, complete_path\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m--> 361\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 362\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 363\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mroute \u001b[38;5;241m=\u001b[39m route\n", + "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:146\u001b[0m, in \u001b[0;36mLog.__init__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 145\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m--> 146\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 147\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 148\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlog \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMessage\u001b[39m\u001b[38;5;124m\"\u001b[39m: [], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTimestamp\u001b[39m\u001b[38;5;124m\"\u001b[39m: [], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mValue\u001b[39m\u001b[38;5;124m\"\u001b[39m: [], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mGeometry\u001b[39m\u001b[38;5;124m\"\u001b[39m: []}\n", + "File \u001b[1;32m~\\github\\OpenTNSim\\opentnsim\\core.py:36\u001b[0m, in \u001b[0;36mSimpyObject.__init__\u001b[1;34m(self, env, *args, **kwargs)\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, env, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 36\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 37\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv \u001b[38;5;241m=\u001b[39m env\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\identifiable.py:38\u001b[0m, in \u001b[0;36mIdentifiable.__init__\u001b[1;34m(self, name, id, *args, **kwargs)\u001b[0m\n\u001b[0;32m 31\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[0;32m 32\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mID argument specified in \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, please use the attribute id\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 33\u001b[0m category\u001b[38;5;241m=\u001b[39m\u001b[38;5;167;01mDeprecationWarning\u001b[39;00m,\n\u001b[0;32m 34\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m,\n\u001b[0;32m 35\u001b[0m )\n\u001b[0;32m 36\u001b[0m \u001b[38;5;28mid\u001b[39m \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mID\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m---> 38\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 39\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m=\u001b[39m name\n\u001b[0;32m 40\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mid \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mid\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mid\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mstr\u001b[39m(uuid\u001b[38;5;241m.\u001b[39muuid4())\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\log.py:31\u001b[0m, in \u001b[0;36mLog.__init__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 30\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 31\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 32\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 33\u001b[0m \u001b[38;5;66;03m# record oriented list of log messages\u001b[39;00m\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\resource.py:24\u001b[0m, in \u001b[0;36mHasResource.__init__\u001b[1;34m(self, nr_resources, *args, **kwargs)\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, nr_resources: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 24\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 25\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 26\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mresource \u001b[38;5;241m=\u001b[39m simpy\u001b[38;5;241m.\u001b[39mResource(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv, capacity\u001b[38;5;241m=\u001b[39mnr_resources)\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\container.py:29\u001b[0m, in \u001b[0;36mHasContainer.__init__\u001b[1;34m(self, capacity, store_capacity, level, *args, **kwargs)\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[0;32m 22\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 23\u001b[0m capacity: \u001b[38;5;28mfloat\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 28\u001b[0m ):\n\u001b[1;32m---> 29\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 30\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n\u001b[0;32m 31\u001b[0m container_class \u001b[38;5;241m=\u001b[39m EventsContainer\n", + "File \u001b[1;32m~\\github\\OpenCLSim\\src\\openclsim\\core\\processor.py:25\u001b[0m, in \u001b[0;36mProcessor.__init__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 25\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 26\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Initialization\"\"\"\u001b[39;00m\n", + "\u001b[1;31mTypeError\u001b[0m: __init__() missing 1 required positional argument: 'env'" + ] + } + ], + "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": null, + "id": "3018ddd0", + "metadata": {}, + "outputs": [], + "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 = {\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 = {\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 = {\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", + "vessel02 = TransportProcessingResource(**data_vessel02)\n", + "vessel03 = TransportProcessingResource(**data_vessel03)\n", + "vessel04 = TransportProcessingResource(**data_vessel04)\n", + "assert not vessel02.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01fad10e", + "metadata": {}, + "outputs": [], + "source": [ + "vessel03" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbc43ab7", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "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=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=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=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=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": null, + "id": "c7e5d1f0", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.model.register_processes([simulation_process])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "126557f8", + "metadata": {}, + "outputs": [], + "source": [ + "# start the simulation\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b76eccc", + "metadata": {}, + "outputs": [], + "source": [ + "pd.DataFrame(vessel01.logbook)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "982c209a", + "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 +} 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", + "" + ], + "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/notebooks/35_Accessibility_Dredging_with_Priority.ipynb b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb new file mode 100644 index 00000000..c3c35c44 --- /dev/null +++ b/notebooks/35_Accessibility_Dredging_with_Priority.ipynb @@ -0,0 +1,4019 @@ +{ + "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": 3, + "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": 4, + "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": 5, + "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": 6, + "id": "f4953daf", + "metadata": {}, + "outputs": [], + "source": [ + "# add a graph to the environment\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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", + "Vessel_obj_01 = type(\n", + " \"TransportProcessingResource\",\n", + " (\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", + " openclsim.core.Priority,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "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": 9, + "id": "eb96460b", + "metadata": {}, + "outputs": [], + "source": [ + "# prepare input data for vessel_01\n", + "data_vessel01 = {\n", + " \"env\": my_env,\n", + " \"name\": \"vessel01\",\n", + " \"geometry\": location_berth, \n", + " \"loading_rate\": 1,\n", + " \"unloading_rate\": 5,\n", + " \"capacity\": 10,\n", + " \"type\":\"dredging_vessel\",\n", + " \"priority\": 1,\n", + " \"compute_v\": lambda x: 10 + 2 * x,\n", + "}\n", + "# instantiate vessel_01 \n", + "vessel01 = Vessel_obj_01(**data_vessel01)\n", + "# assert not vessel01.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "2329f3f4", + "metadata": {}, + "outputs": [], + "source": [ + "# initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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": 12, + "id": "da632d50", + "metadata": {}, + "outputs": [], + "source": [ + "openclsim.model.register_processes([while_activity])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "69f85ca3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "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" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ec2fc285", + "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", + "
ActivityTimestampActivityStatetyperef
0018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 00:00:00.000000STARTNaNNaN
1018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 00:00:00.000000STARTsubprocessf2630f78-2af9-4a99-b7e4-7f18c7220a17
2018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 00:00:00.000000STOPsubprocessf2630f78-2af9-4a99-b7e4-7f18c7220a17
3018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 00:00:00.000000STARTsubprocessd26d3082-9619-4efe-98a1-c1edb8e54693
4018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 00:00:10.000000STOPsubprocessd26d3082-9619-4efe-98a1-c1edb8e54693
..................
77018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 08:49:59.864804STARTsubprocessa91016d0-eaf1-4d35-af13-afedbe5d0db7
78018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 09:16:39.958986STOPsubprocessa91016d0-eaf1-4d35-af13-afedbe5d0db7
79018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 09:16:39.958986STARTsubprocess81597438-b7ac-4e45-be61-470e31a4eea7
80018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 09:16:41.958986STOPsubprocess81597438-b7ac-4e45-be61-470e31a4eea7
81018740f0-251b-4089-833d-d7e7fcf420a11970-01-01 09:16:41.958986STOPNaNNaN
\n", + "

82 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp \\\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 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 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 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]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(openclsim.plot.get_log_dataframe(while_activity))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "04a3941e", + "metadata": {}, + "outputs": [], + "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": 16, + "id": "a2164d1a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['offshore', 'berth', 'offshore']" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "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,\n", + " \"name\": 'seagoing vessel',\n", + " \"geometry\": location_offshore,\n", + " \"route\": path,\n", + " \"v\": 1}\n", + "\n", + "# instantiate vessel_02 \n", + "vessel02 = Vessel_obj_02(**data_vessel02)\n", + "assert not vessel02.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "437ea3dd", + "metadata": {}, + "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())" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "01ed80c7", + "metadata": {}, + "outputs": [], + "source": [ + "# start the simulation\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "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": 20, + "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(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": 21, + "id": "5205fc7f", + "metadata": {}, + "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": 22, + "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 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": 23, + "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 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", + "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/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 +} diff --git a/notebooks/37_Claim_Berth_Interference.ipynb b/notebooks/37_Claim_Berth_Interference.ipynb new file mode 100644 index 00000000..ed5cde9a --- /dev/null +++ b/notebooks/37_Claim_Berth_Interference.ipynb @@ -0,0 +1,2421 @@ +{ + "cells": [ + { + "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." + ] + }, + { + "cell_type": "markdown", + "id": "c90ad146", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, + { + "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.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", + "import numpy as np\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "markdown", + "id": "0b62c670", + "metadata": {}, + "source": [ + "#### 1. Initialise simpy environment" + ] + }, + { + "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": "markdown", + "id": "3d9fb496", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4fe0acc4", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type('Site',\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", + " (core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,), {})\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": "c900ac62", + "metadata": {}, + "source": [ + "#### 3. Create objects" + ] + }, + { + "cell_type": "markdown", + "id": "a53ca26d", + "metadata": {}, + "source": [ + "##### 3.1. Create site object(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "194d87d7", + "metadata": {}, + "outputs": [], + "source": [ + "# 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", + " \"geometry\": location_offshore,\n", + " \"capacity\": 100,\n", + " \"level\": 0,\n", + " }\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", + " \"geometry\": location_offshore_waypoint,\n", + " }\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", + " \"geometry\": location_berth,\n", + " \"capacity\": 100,\n", + " \"level\": 80,\n", + " \"nr_resources\": 1\n", + " }\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", + " \"geometry\": location_dredging_waypoint,\n", + " }\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", + " \"geometry\": location_dump,\n", + " \"capacity\": 100,\n", + " \"level\": 0\n", + " }\n", + "dump = Site(**data_dump) " + ] + }, + { + "cell_type": "markdown", + "id": "11f711d8", + "metadata": {}, + "source": [ + "##### 3.2. Create graph object" + ] + }, + { + "cell_type": "code", + "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", + "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": 6, + "id": "0b1c3d48", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of edges is 8\n" + ] + }, + { + "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", + "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 node in nodes:\n", + " graph.add_node(node.name,\n", + " geometry = node.geometry)\n", + " \n", + "# add edges\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", + "graph = graph.to_undirected() \n", + "graph = graph.to_directed()\n", + "\n", + "# create a positions dict for the purpose of plotting\n", + "positions = {}\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 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", + "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": "markdown", + "id": "176c64e8", + "metadata": {}, + "source": [ + "##### 3.3. Create vessel object(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "515a8e5f", + "metadata": {}, + "outputs": [], + "source": [ + "# assigning graph to the simpy environment\n", + "my_env.graph = graph" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d7a09966", + "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": [ + "# 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", + "display(path_dredging)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3a93707b", + "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": "cecba605", + "metadata": {}, + "source": [ + "##### 3.4. Create activity object(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4824e5c2", + "metadata": {}, + "outputs": [], + "source": [ + "# Initialise registry\n", + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "8aa0f3d5", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify the amount of container and duration of activities\n", + "amount = 10\n", + "duration = 200\n", + "\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", + " ),\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=[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", + " )" + ] + }, + { + "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", + " 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=[{\"type\": \"container\",\n", + " \"concept\": vessel02,\n", + " \"state\": \"empty\",\n", + " \"id_\":\"default_reservations\",\n", + " }\n", + " ]\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "4692b789", + "metadata": {}, + "source": [ + "#### 4. Register activities and run simpy" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c7bc8929", + "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": 14, + "id": "ca0db928", + "metadata": { + "scrolled": false + }, + "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" + ] + } + ], + "source": [ + "my_env.run()" + ] + }, + { + "cell_type": "markdown", + "id": "c2b0490e", + "metadata": {}, + "source": [ + "#### 5. Inspect Results" + ] + }, + { + "cell_type": "markdown", + "id": "cf76e6ec", + "metadata": {}, + "source": [ + "##### 5.1. Inspect logs" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "c6f1186c", + "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", + "
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" + } + ], + "source": [ + "# Inspect dredging vessel log\n", + "display(plot.get_log_dataframe(vessel01, [activities_dredging_vessel]))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "7a12e080", + "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" + } + ], + "source": [ + "# Inspect seagoing vessel log\n", + "display(plot.get_log_dataframe(vessel02, [activities_seagoing_vessel]))" + ] + }, + { + "cell_type": "markdown", + "id": "890cf974", + "metadata": {}, + "source": [ + "##### 5.2. Visualise gantt chart" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "a142a639", + "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(227,218,156)", + "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(7,254,192)", + "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(43,34,228)", + "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(79,70,8)", + "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(115,106,44)", + "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(151,142,80)", + "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(187,178,116)", + "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": "187697e1", + "metadata": {}, + "source": [ + "##### 5.3 Visualise container volume developments" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d1d97aae", + "metadata": { + "scrolled": false + }, + "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==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([vessel01, berth, dump])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "2081110d", + "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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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plot.get_step_chart([vessel02, berth, offshore])" + ] + } + ], + "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 +} diff --git a/notebooks/38_Interaction_MultiVessel_MultiContainer.ipynb b/notebooks/38_Interaction_MultiVessel_MultiContainer.ipynb new file mode 100644 index 00000000..f09474a5 --- /dev/null +++ b/notebooks/38_Interaction_MultiVessel_MultiContainer.ipynb @@ -0,0 +1,6480 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "934d1f14", + "metadata": {}, + "source": [ + "### Interaction of seagoing and dredging with multi-container\n", + "\n", + "This notebook is developed to visualize the interaction between seagoing and dredging operations in which:\n", + "\n", + "* Dredging and seagoing vessels are identical separately.\n", + "* The number of dredging and seagoing vessels, amount of soil/cargo, and berth capacity can be controlled.\n", + "\n", + "The following steps are proposed to setup the simulation." + ] + }, + { + "cell_type": "markdown", + "id": "bda807f1", + "metadata": {}, + "source": [ + "#### 0. Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ecac76e5", + "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.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", + "import numpy as np\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import folium" + ] + }, + { + "cell_type": "markdown", + "id": "b26ff288", + "metadata": {}, + "source": [ + "#### 1. Define object classes" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4fe0acc4", + "metadata": {}, + "outputs": [], + "source": [ + "# create a Site object based on desired mixin classes\n", + "Site = type('Site',\n", + " (core.Identifiable,\n", + " core.Log,\n", + " core.Locatable,\n", + " core.HasMultiContainer,\n", + " core.HasResource,), {})\n", + "\n", + "# create a TransportProcessingResource object based on desired mixin classes\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.MultiContainerDependentMovable,\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": "34cdd50d", + "metadata": {}, + "source": [ + "#### 2. Define run, site objects, and vessel objects" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6198e004", + "metadata": {}, + "outputs": [], + "source": [ + "def run(nr_seagoing_vessels, nr_dredging_vessels, total_container, total_soil):\n", + " simulation_start = 0\n", + " my_env = simpy.Environment(initial_time=simulation_start)\n", + " registry = {}\n", + "\n", + "\n", + " # create site objects\n", + " # prepare data for offshore locations\n", + " location_offshore = shapely.geometry.Point(3.637610458072877, 52.10701582514347)\n", + " data_offshore = {\"env\": my_env,\n", + " \"name\": \"offshore\",\n", + " \"geometry\": location_offshore,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 0},\n", + " ],\n", + " \"nr_resources\": nr_seagoing_vessels,\n", + " }\n", + " offshore = Site(**data_offshore)\n", + "\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", + " \"geometry\": location_berth,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 10, \"capacity\": total_container},\n", + " {\"id\": \"Soil\", \"level\": 20, \"capacity\": total_soil},\n", + " ],\n", + " \"nr_resources\": 1\n", + " }\n", + " berth = Site(**data_berth)\n", + "\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", + " \"geometry\": location_dump,\n", + " \"initials\": [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": total_soil},\n", + " ],\n", + " }\n", + " dump = Site(**data_dump)\n", + "\n", + "\n", + " # create vessel objects\n", + " vessels = {}\n", + "\n", + " for i in range(nr_dredging_vessels):\n", + " vessels[f\"dredging_vessel{i}\"] = TransportProcessingResource (\n", + " env = my_env,\n", + " name = f\"dredging_vessel{i}\",\n", + " geometry = location_dump,\n", + " initials = [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 6},\n", + " ],\n", + " loading_rate = 1,\n", + " undloading_rate = 2,\n", + " compute_v = lambda x: 10 + 2 * x,\n", + " )\n", + " dredging_vessel = TransportProcessingResource(\n", + " env = my_env,\n", + " name = f\"dredging_vessel{i}\",\n", + " geometry = location_dump,\n", + " initials = [\n", + " {\"id\": \"Container\", \"level\": 0, \"capacity\": 0},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 6},\n", + " ],\n", + " loading_rate = 1,\n", + " undloading_rate = 2,\n", + " compute_v = lambda x: 10 + 2 * x,\n", + " )\n", + " \n", + " for i in range (nr_dredging_vessels):\n", + " vessels['dredging_vessel'] = dredging_vessel\n", + "\n", + "\n", + " for i in range (nr_seagoing_vessels):\n", + " vessels[f\"seagoing_vessel{i}\"] = TransportProcessingResource (\n", + " env = my_env,\n", + " name = f\"seagoing_vessel{i}\",\n", + " geometry = location_offshore,\n", + " initials = [\n", + " {\"id\": \"Container\", \"level\": 15, \"capacity\": 15},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 0},\n", + " ],\n", + " loading_rate = 2,\n", + " undloading_rate = 2,\n", + " compute_v = lambda x: 10 + 2 * x,\n", + " )\n", + " seagoing_vessel = TransportProcessingResource(\n", + " env = my_env,\n", + " name = f\"seagoing_vessel{i}\",\n", + " geometry = location_offshore,\n", + " initials = [\n", + " {\"id\": \"Container\", \"level\": 15, \"capacity\": 15},\n", + " {\"id\": \"Soil\", \"level\": 0, \"capacity\": 0},\n", + " ],\n", + " loading_rate = 2,\n", + " undloading_rate = 2,\n", + " compute_v = lambda x: 10 + 2 * x,\n", + " )\n", + " for i in range (nr_seagoing_vessels):\n", + " vessels['seagoing_vessel'] = seagoing_vessel\n", + "\n", + "\n", + "\n", + " #Create activity objects\n", + " activities_dredging_vessel = {}\n", + " activities_seagoing_vessel = {}\n", + "\n", + " for i in range (nr_dredging_vessels):\n", + " requested_resources = {}\n", + " \n", + " dredging_subprocesses = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing_empty:\"+vessels[f\"dredging_vessel{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"dredging_vessel{i}\"],\n", + " destination=berth,\n", + " duration=20,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"loading:\"+vessels[f\"dredging_vessel{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"dredging_vessel{i}\"],\n", + " origin=berth,\n", + " destination=vessels[f\"dredging_vessel{i}\"],\n", + " amount=4,\n", + " duration=50,\n", + " id_=\"Soil\",\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing_full:\"+vessels[f\"dredging_vessel{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"dredging_vessel{i}\"],\n", + " destination=dump,\n", + " duration=15,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"unloading:\"+vessels[f\"dredging_vessel{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"dredging_vessel{i}\"],\n", + " origin=vessels[f\"dredging_vessel{i}\"],\n", + " destination=dump,\n", + " amount=4,\n", + " duration=25,\n", + " id_=\"Soil\",\n", + " requested_resources=requested_resources,\n", + " )\n", + " ]\n", + " \n", + " activities_dredging_vessel[f\"activities_dredging_vessel{i}\"] = model.WhileActivity(\n", + " env = my_env,\n", + " name = f\"while_sequential_activity_dredging_vessel{i}\",\n", + " registry = registry,\n", + " sub_processes= [model.SequentialActivity(\n", + " env = my_env,\n", + " name = f\"sequential_activity_dredging_vessel{i}\",\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", + " )\n", + " \n", + " \n", + " for i in range (nr_seagoing_vessels):\n", + " requested_resources = {}\n", + " \n", + " seagoing_subprocesses = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing_full:\"+vessels[f\"seagoing_vessel{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"seagoing_vessel{i}\"],\n", + " destination=berth,\n", + " duration=10,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=f\"unloading:\"+vessels[f\"seagoing_vessel{i}\"].name,\n", + " registry=registry,\n", + " processor=vessels[f\"seagoing_vessel{i}\"],\n", + " origin=vessels[f\"seagoing_vessel{i}\"],\n", + " destination=berth,\n", + " amount=5,\n", + " duration=30,\n", + " id_=\"Container\",\n", + " requested_resources=requested_resources,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=f\"sailing_empty:\"+vessels[f\"seagoing_vessel{i}\"].name,\n", + " registry=registry,\n", + " mover=vessels[f\"seagoing_vessel{i}\"],\n", + " destination=offshore,\n", + " duration=5,\n", + " ),\n", + " ]\n", + " \n", + " activities_seagoing_vessel[f\"activities_seagoing_vessel{i}\"] = model.WhileActivity(\n", + " env = my_env,\n", + " name = f\"while_sequential_activity_seagoing_vessel{i}\",\n", + " registry = registry,\n", + " sub_processes= [model.SequentialActivity(\n", + " env = my_env,\n", + " name = f\"sequential_activity_seagoing_vessel{i}\",\n", + " registry = registry,\n", + " sub_processes = seagoing_subprocesses\n", + " )],\n", + " condition_event = [{\"type\": \"container\",\n", + " \"concept\": vessels[f\"seagoing_vessel{i}\"],\n", + " \"state\": \"empty\",\n", + " \"id_\": \"default_reservations\"}\n", + " ]\n", + " )\n", + " \n", + "\n", + " model.register_processes([*activities_dredging_vessel.values(), *activities_seagoing_vessel.values()])\n", + " my_env.run()\n", + "\n", + " return {\n", + " \"vessels\": vessels,\n", + " \"activities_dredging_vessel\": activities_dredging_vessel,\n", + " \"activities_seagoing_vessel\": activities_seagoing_vessel,\n", + " \"offshore\": offshore,\n", + " \"berth\": berth,\n", + " \"dump\": dump,\n", + " }\n" + ] + }, + { + "cell_type": "markdown", + "id": "12b54df8", + "metadata": {}, + "source": [ + "#### 3. Control simulation attributes and run" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "da59910e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover dredging_vessel0 destination berth\n", + "mover dredging_vessel1 destination berth\n", + "mover dredging_vessel2 destination berth\n", + "mover seagoing_vessel0 destination berth\n", + "mover seagoing_vessel1 destination berth\n", + "mover seagoing_vessel2 destination berth\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "updating to destination geometry POINT (4.062705498083785 51.95909715255291)\n", + "mover seagoing_vessel0 destination offshore\n", + "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", + "mover seagoing_vessel1 destination offshore\n", + "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", + "mover seagoing_vessel2 destination offshore\n", + "updating to destination geometry POINT (3.637610458072877 52.10701582514347)\n", + "mover dredging_vessel0 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging_vessel1 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "mover dredging_vessel2 destination dump\n", + "updating to destination geometry POINT (4.1795229742823 52.11590591837503)\n", + "CPU times: total: 15.6 ms\n", + "Wall time: 23.8 ms\n" + ] + } + ], + "source": [ + "%%time\n", + "\n", + "res = run(3,3,50,30)\n", + "vessels = res['vessels']\n", + "activities_dredging_vessel = res['activities_dredging_vessel']\n", + "activities_seagoing_vessel = res['activities_seagoing_vessel']\n", + "dredging_vessel = vessels['dredging_vessel']\n", + "seagoing_vessel = vessels['seagoing_vessel']\n", + "offshore = res['offshore']\n", + "berth = res['berth']\n", + "dump = res['dump']" + ] + }, + { + "cell_type": "markdown", + "id": "29ca9f01", + "metadata": {}, + "source": [ + "#### 4. Inspect results" + ] + }, + { + "cell_type": "markdown", + "id": "df0c46cd", + "metadata": {}, + "source": [ + "##### 4.1. Visualize gantt chart" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7a12e080", + "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(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": 6, + "id": "72995596", + "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(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", + " id_map=[*activities_dredging_vessel.values()]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e9b3bfea", + "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(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", + " id_map=[*activities_seagoing_vessel.values()]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "778e9d5f", + "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(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", + " 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_dredging_vessel]:\n", + " all_activities_hopper+=expand(activities_dredging_vessel[a],'load')\n", + "all_activities_hopper\n", + "fig = plot.get_gantt_chart(all_activities_hopper)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "dff35f90", + "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(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", + "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 = []\n", + "for a in [*activities_dredging_vessel]:\n", + " all_activities+=expand(activities_dredging_vessel[a],'load')\n", + "all_activities\n", + "fig = plot.get_gantt_chart(all_activities)" + ] + }, + { + "cell_type": "markdown", + "id": "d39d07c2", + "metadata": {}, + "source": [ + "##### 4.2. Visualise container and soil volume developments" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0ffa807a", + "metadata": {}, + "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])" + ] + } + ], + "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/notebooks/39_Water_Injection_Dredging.ipynb b/notebooks/39_Water_Injection_Dredging.ipynb new file mode 100644 index 00000000..05b154ec --- /dev/null +++ b/notebooks/39_Water_Injection_Dredging.ipynb @@ -0,0 +1,632 @@ +{ + "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": 1, + "id": "6c17f731", + "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\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": "markdown", + "id": "d455976e", + "metadata": {}, + "source": [ + "#### 1. Define simpy environment and start simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "c7e81df2", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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.Processor_wid,\n", + " core.Identifiable,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "25d99cb3", + "metadata": {}, + "source": [ + "#### 3. Define site(s) and vessel(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", + "metadata": {}, + "outputs": [], + "source": [ + "location_dredging_site = shapely.geometry.Point(4.057883, 51.947782)\n", + "\n", + "data_dredging_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"amazonehaven\",\n", + " \"geometry\": location_dredging_site, \n", + " \"capacity\":150000,\n", + " \"level\":150000,\n", + "}\n", + "\n", + "Dredging_site = Site(**data_dredging_site)\n", + "\n", + "\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": "markdown", + "id": "886bb220", + "metadata": {}, + "source": [ + "#### 4. Define water injection dredging activity" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}\n", + "\n", + "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=1740,\n", + " duration=2*3600,\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": "markdown", + "id": "e7504c98", + "metadata": {}, + "source": [ + "#### 5. Register the processes and run the simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", + "metadata": {}, + "outputs": [], + "source": [ + "model.register_processes([while_activity])\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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": "markdown", + "id": "8ed56f95", + "metadata": {}, + "source": [ + "#### 6. Obtain activity log" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "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", + "
ActivityTimestampActivityStategeometrycontainer level
0WID activity1970-01-01 00:00:00STARTPOINT (4.057883 51.947782)0.0
1WID activity1970-01-01 02:00:00STOPPOINT (4.057883 51.947782)0.0
2WID activity1970-01-01 02:00:01STARTPOINT (4.057883 51.947782)0.0
3WID activity1970-01-01 04:00:01STOPPOINT (4.057883 51.947782)0.0
4WID activity1970-01-01 04:00:02STARTPOINT (4.057883 51.947782)0.0
..................
169WID activity1970-01-08 02:01:24STOPPOINT (4.057883 51.947782)0.0
170WID activity1970-01-08 02:01:25STARTPOINT (4.057883 51.947782)0.0
171WID activity1970-01-08 04:01:25STOPPOINT (4.057883 51.947782)0.0
172WID activity1970-01-08 04:01:26STARTPOINT (4.057883 51.947782)0.0
173WID activity1970-01-08 06:01:26STOPPOINT (4.057883 51.947782)0.0
\n", + "

174 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 WID activity 1970-01-01 00:00:00 START \n", + "1 WID activity 1970-01-01 02:00:00 STOP \n", + "2 WID activity 1970-01-01 02:00:01 START \n", + "3 WID activity 1970-01-01 04:00:01 STOP \n", + "4 WID activity 1970-01-01 04:00:02 START \n", + ".. ... ... ... \n", + "169 WID activity 1970-01-08 02:01:24 STOP \n", + "170 WID activity 1970-01-08 02:01:25 START \n", + "171 WID activity 1970-01-08 04:01:25 STOP \n", + "172 WID activity 1970-01-08 04:01:26 START \n", + "173 WID activity 1970-01-08 06:01:26 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.057883 51.947782) 0.0 \n", + "1 POINT (4.057883 51.947782) 0.0 \n", + "2 POINT (4.057883 51.947782) 0.0 \n", + "3 POINT (4.057883 51.947782) 0.0 \n", + "4 POINT (4.057883 51.947782) 0.0 \n", + ".. ... ... \n", + "169 POINT (4.057883 51.947782) 0.0 \n", + "170 POINT (4.057883 51.947782) 0.0 \n", + "171 POINT (4.057883 51.947782) 0.0 \n", + "172 POINT (4.057883 51.947782) 0.0 \n", + "173 POINT (4.057883 51.947782) 0.0 \n", + "\n", + "[174 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(WID_vessel, [while_activity, *sub_processes]))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00START150000POINT (4.057883 51.947782)
1WID activity1970-01-01 02:00:00STOP148260POINT (4.057883 51.947782)
2WID activity1970-01-01 02:00:01START148260POINT (4.057883 51.947782)
3WID activity1970-01-01 04:00:01STOP146520POINT (4.057883 51.947782)
4WID activity1970-01-01 04:00:02START146520POINT (4.057883 51.947782)
..................
169WID activity1970-01-08 02:01:24STOP2100POINT (4.057883 51.947782)
170WID activity1970-01-08 02:01:25START2100POINT (4.057883 51.947782)
171WID activity1970-01-08 04:01:25STOP360POINT (4.057883 51.947782)
172WID activity1970-01-08 04:01:26START360POINT (4.057883 51.947782)
173WID activity1970-01-08 06:01:26STOP0POINT (4.057883 51.947782)
\n", + "

174 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 WID activity 1970-01-01 00:00:00 START 150000 \n", + "1 WID activity 1970-01-01 02:00:00 STOP 148260 \n", + "2 WID activity 1970-01-01 02:00:01 START 148260 \n", + "3 WID activity 1970-01-01 04:00:01 STOP 146520 \n", + "4 WID activity 1970-01-01 04:00:02 START 146520 \n", + ".. ... ... ... ... \n", + "169 WID activity 1970-01-08 02:01:24 STOP 2100 \n", + "170 WID activity 1970-01-08 02:01:25 START 2100 \n", + "171 WID activity 1970-01-08 04:01:25 STOP 360 \n", + "172 WID activity 1970-01-08 04:01:26 START 360 \n", + "173 WID activity 1970-01-08 06:01:26 STOP 0 \n", + "\n", + " geometry \n", + "0 POINT (4.057883 51.947782) \n", + "1 POINT (4.057883 51.947782) \n", + "2 POINT (4.057883 51.947782) \n", + "3 POINT (4.057883 51.947782) \n", + "4 POINT (4.057883 51.947782) \n", + ".. ... \n", + "169 POINT (4.057883 51.947782) \n", + "170 POINT (4.057883 51.947782) \n", + "171 POINT (4.057883 51.947782) \n", + "172 POINT (4.057883 51.947782) \n", + "173 POINT (4.057883 51.947782) \n", + "\n", + "[174 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "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": 10, + "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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oUOHWsNRSkqKTp8+bb0LqcBdd92l/fv3lzivJk2aSJJ1Hr///rsWLVokNzc36yskJER5eXk6cuRIscdwcHCQj4+PzbUsXbpUd911l3x8fOTm5qbXX3/d5jpGjBiho0eP6rfffpNkueuoa9euateunXUea9eutZlHwb6ijwgWnUfB9RSdR0W4seQIAAAAAADKrE7tWtr3txC7nbu07r//frVo0UKffvqpfH19lZeXpw4dOigrK8tmXO3ata1/7eDgUOy2oo+6jR49WhcuXNCsWbPUokULubi4qFevXjbHzc3N1SOPPCJ3d/erPmeotIqbV8E80tLS9Oc//1mTJk266n3Nmzcv9hhXXktkZKRGjRqld955RyEhIfLw8NCSJUv00UcfWcf7+Pho4MCBWrx4sXr27KnFixdr3Lhx1v1paWm6//77NW3atKvmURC8rjePikI8AgAAAACggjg4ONzwo2MV5cKFCzp48KA+/fRT9enTR5LlsS4zbNq0SfPmzdOQIUMkSSdOnLD5gGhJeuGFF7R7925t27bN5lErd3d3+fr6atOmTerXr5/NMXv06FHqOXTt2lX79u1TmzZtbvg6Nm/erBYtWui1116zbjt27NhV40aNGqW//OUvGjlypOLi4jRixAibefznP/9Ry5Yt5eRUudcEj60BAAAAAACrW265RQ0bNtTChQsVGxur8PBwvfjii6YcOyAgQF9//bX279+vqKgojRo1SnXq1LHu/+KLLzRv3jwtWLBADg4Oio+PV3x8vNLS0iRJr7zyiqZNm6alS5fq4MGDevXVV7Vz505Nnjy51HOYMmWKNm/erAkTJmjnzp2KiYnRf//736s+MPt613H8+HEtWbJEhw8f1uzZs/XDDz9cNe7BBx9Uamqqxo0bpwEDBsjX19e6b/z48UpMTNTIkSO1detWHT58WKtWrdJTTz2l3NzcUs+lIhCPqrmc3Dwt2nREaZk59p4KAAAAAKAKcHR01JIlSxQdHa0OHTrohRde0AcffGDKsT///HNdvHhRXbt21eOPP65JkybJy8vLun/9+vXKzc3VAw88oCZNmlhfH374oSRp0qRJevHFF/XSSy+pY8eOWrlypX788UcFBASUeg6333671q9fr0OHDqlPnz7q0qWL3nzzTZuwcz0PPPCAXnjhBU2YMEGdO3fW5s2b9cYbb1w1rn79+rr/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\n", + "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": "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 +} diff --git a/notebooks/40_Backhoe_Barge.ipynb b/notebooks/40_Backhoe_Barge.ipynb new file mode 100644 index 00000000..7e23cc6f --- /dev/null +++ b/notebooks/40_Backhoe_Barge.ipynb @@ -0,0 +1,4001 @@ +{ + "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": 183, + "id": "d055e0b6", + "metadata": {}, + "outputs": [], + "source": [ + "# libraries used for numerical and data analysis\n", + "import pandas as pd\n", + "import shapely\n", + "from numpy import random\n", + "import opentnsim\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" + ] + }, + { + "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": 184, + "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": "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": 185, + "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": "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": 186, + "id": "21b2b98c", + "metadata": {}, + "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", + "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", + "berth = res['berth']\n", + "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": 187, + "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": "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": 188, + "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(116,104,24)", + "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(130,118,38)", + "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(144,132,52)", + "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(158,146,66)", + "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(172,160,80)", + "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(186,174,94)", + "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(200,188,108)", + "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(214,202,122)", + "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(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", + "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(0,244,164)", + "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(14,2,178)", + "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(28,16,192)", + "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(42,30,206)", + "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(56,44,220)", + "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(70,58,234)", + "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(84,72,248)", + "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(98,86,6)", + "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 + ] + } + ], + "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": 189, + "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(240,206,117)", + "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(16,238,149)", + "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(48,14,181)", + "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(80,46,213)", + "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(112,78,245)", + "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(144,110,21)", + "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(176,142,53)", + "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(208,174,85)", + "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": "markdown", + "id": "13ca5b5a", + "metadata": {}, + "source": [ + "#### 4.3. Step chart\n", + "Step charts can also be visulized to show the changes in the level of container (soil) in sites and vessels" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "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": [ + "## 5. Exercise\n", + "\n", + "Determine the total energy consumption of the maintenance dredging processes for different scenarios (different types and number of BHDs and TSHDs)\n", + "Draw a graph that compares the emission of each scenario and the duration of doing each job." + ] + }, + { + "cell_type": "markdown", + "id": "ea94b68d", + "metadata": {}, + "source": [ + "#### 5.1. Emission factors" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "id": "1ed476cf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+-----------+-------------------------------------+\n", + "| fuel_type | emission_factor (kg of CO2 per KWh) |\n", + "+-----------+-------------------------------------+\n", + "| Diesel | 0.9 |\n", + "| RMG 380 | 0.8 |\n", + "| DMA | 0.6 |\n", + "| LNG | 0.5 |\n", + "| MGO | 0.7 |\n", + "| Gasoil | 0.85 |\n", + "| MDO | 0.75 |\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 (kg of CO2 per KWh)\"]\n", + "\n", + "# Add rows to the table\n", + "table.add_row([\"Diesel\", \"0.9\"])\n", + "table.add_row([\"RMG 380\", \"0.8\"])\n", + "table.add_row([\"DMA\", \"0.6\"])\n", + "table.add_row([\"LNG\", \"0.5\"])\n", + "table.add_row([\"MGO\", \"0.7\"])\n", + "table.add_row([\"Gasoil\", \"0.85\"])\n", + "table.add_row([\"MDO\", \"0.75\"])\n", + "\n", + "# Print the table\n", + "print(table)" + ] + }, + { + "cell_type": "markdown", + "id": "74a6cb3d", + "metadata": {}, + "source": [ + "#### 5.2. Power consumption" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "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", + "
sailing empty [kW]loading [kW]sailing full [kW]unloading [kW]WAIT [kW]fuel_type
barge_name
barge I30010050015030Diesel
barge II30010050015030Diesel
barge III30010050015030Diesel
\n", + "
" + ], + "text/plain": [ + " sailing empty [kW] loading [kW] sailing full [kW] \\\n", + "barge_name \n", + "barge I 300 100 500 \n", + "barge II 300 100 500 \n", + "barge III 300 100 500 \n", + "\n", + " unloading [kW] WAIT [kW] fuel_type \n", + "barge_name \n", + "barge I 150 30 Diesel \n", + "barge II 150 30 Diesel \n", + "barge III 150 30 Diesel " + ] + }, + "execution_count": 192, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# In this exercise, you can adopt maximum three identical barges\n", + "\n", + "barge_empty = 300 # kW\n", + "barge_full = 500 # kW\n", + "barge_loading = 100 # kW\n", + "barge_unloading = 150 # kW\n", + "barge_WAIT = 30 # kW\n", + "\n", + "\n", + "barge_specs = pd.DataFrame.from_dict(\n", + " {'sailing empty [kW]':{'barge I':barge_empty,'barge II':barge_empty,'barge III':barge_empty},\n", + " 'loading [kW]':{'barge I':barge_loading, 'barge II':barge_loading,'barge III':barge_loading},\n", + " 'sailing full [kW]':{'barge I':barge_full,'barge II':barge_full,'barge III':barge_full},\n", + " 'unloading [kW]':{'barge I':barge_unloading,'barge II':barge_unloading,'barge III':barge_unloading},\n", + " 'WAIT [kW]':{'barge I':barge_WAIT,'barge II':barge_WAIT,'barge III':barge_WAIT},\n", + " 'fuel_type':{'barge I':'Diesel','barge II':'Diesel','barge III':'Diesel'},\n", + " }\n", + ")\n", + "\n", + "barge_specs.index.name = 'barge_name' \n", + "barge_specs.to_csv('barge_specs.csv', index=True)\n", + "vessel_specs = pd.read_csv('barge_specs.csv', index_col='barge_name')\n", + "vessel_specs" + ] + }, + { + "cell_type": "markdown", + "id": "a628dec7", + "metadata": {}, + "source": [ + "### 6. Answers\n", + "\n", + "Please quantify the duration and emissions of each scenario when utilizing differnt vessels from the fleet list (Backhoes and TSHDs).\n", + "\n", + "* Barges are identical and maximum three of them can be used for re-allocating the sediments collected by the Backhoe dredger.\n", + "* Maximum one Backhoe dredger can be used for the maintenance dredging but the number of TSHDs are unlimited. However, if you choose too many of them, the simulation stops because not all of them are operating." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa4e3de6", + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/40_TSHD_WID.ipynb b/notebooks/40_TSHD_WID.ipynb new file mode 100644 index 00000000..4fd0bd59 --- /dev/null +++ b/notebooks/40_TSHD_WID.ipynb @@ -0,0 +1,1599 @@ +{ + "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": 1, + "id": "6c17f731", + "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\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": "markdown", + "id": "d455976e", + "metadata": {}, + "source": [ + "#### 1. Define simpy environment and start simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "64d9f309-e0ea-48c9-93b3-fd15a946c43a", + "metadata": {}, + "outputs": [], + "source": [ + "simulation_start = 0\n", + "my_env = simpy.Environment(initial_time=simulation_start)" + ] + }, + { + "cell_type": "markdown", + "id": "c7e81df2", + "metadata": {}, + "source": [ + "#### 2. Define object classes" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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", + "\n", + "TransportProcessingResource = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.ContainerDependentMovable, \n", + " core.HasResource,\n", + " core.Processor,\n", + " core.Identifiable,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")\n", + "\n", + "TransportProcessingResource_wid = type(\n", + " \"TransportProcessingResource\",\n", + " (\n", + " core.ContainerDependentMovable, \n", + " core.HasResource,\n", + " core.Processor_wid,\n", + " core.Identifiable,\n", + " core.Log,\n", + " ),\n", + " {},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "25d99cb3", + "metadata": {}, + "source": [ + "#### 3. Define site(s) and vessel(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3cf45c0f-4543-4987-b4b6-d9b40df02c12", + "metadata": {}, + "outputs": [], + "source": [ + "location_dredging_site = shapely.geometry.Point(4.057883, 51.947782)\n", + "\n", + "data_dredging_site = {\n", + " \"env\": my_env,\n", + " \"name\": \"amazonehaven\",\n", + " \"geometry\": location_dredging_site, \n", + " \"capacity\":150000,\n", + " \"level\":150000,\n", + " \"nr_resources\": 2,\n", + "}\n", + "Dredging_site = Site(**data_dredging_site)\n", + "\n", + "# prepare input data for lowsal (dischargin location)\n", + "location_dump = shapely.geometry.Point(4.077757, 52.028624)\n", + "data_dump = {\n", + " \"env\": my_env,\n", + " \"name\": \"lowsal\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 6000000,\n", + " \"level\": 0,\n", + "}\n", + "dump = Site(**data_dump)\n", + "\n", + "\n", + "\n", + "\n", + "# prepare input data for vessels\n", + "data_tshd = {\n", + " \"env\": my_env,\n", + " \"name\": \"tshd\",\n", + " \"geometry\": location_dump,\n", + " \"capacity\": 25000,\n", + " \"compute_v\": lambda x: 10 + 2 * x,\n", + "}\n", + "tshd = TransportProcessingResource(**data_tshd)\n", + "\n", + "data_wid = {\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 = TransportProcessingResource_wid(**data_wid)" + ] + }, + { + "cell_type": "markdown", + "id": "886bb220", + "metadata": {}, + "source": [ + "#### 4. Define water injection dredging activity" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b73b68bb", + "metadata": {}, + "outputs": [], + "source": [ + "registry = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e04f200d", + "metadata": {}, + "outputs": [], + "source": [ + "subprocesses_tshd = [\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing empty tshd\",\n", + " registry=registry,\n", + " mover=tshd,\n", + " destination=Dredging_site,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"loading tshd\",\n", + " registry=registry,\n", + " processor=tshd,\n", + " origin=Dredging_site,\n", + " destination=tshd,\n", + " amount=25000,\n", + " duration=3*3600,\n", + " ),\n", + " model.MoveActivity(\n", + " env=my_env,\n", + " name=\"sailing full tshd\",\n", + " registry=registry,\n", + " mover=tshd,\n", + " destination=dump,\n", + " ),\n", + " model.ShiftAmountActivity(\n", + " env=my_env,\n", + " name=\"unloading tshd\",\n", + " registry=registry,\n", + " processor=tshd,\n", + " origin=tshd,\n", + " destination=dump,\n", + " amount=25000,\n", + " duration=0.5*3600,\n", + " ),\n", + "]\n", + "\n", + "# Define activities of the dredging vessel\n", + "activities_tshd = model.WhileActivity(\n", + " env=my_env,\n", + " name=\"while sequential dredging tshd\",\n", + " registry=registry,\n", + " sub_processes=[\n", + " model.SequentialActivity(\n", + " env=my_env,\n", + " name=f\"sequential activity dredging tshd\",\n", + " registry=registry,\n", + " sub_processes=subprocesses_tshd,\n", + " )\n", + " ],\n", + " condition_event=[\n", + " {\n", + " \"type\": \"container\",\n", + " \"concept\": Dredging_site,\n", + " \"state\": \"empty\",\n", + " \"id_\": \"default_reservations\",\n", + " }\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ac3ff21a-a6af-4c81-b3e2-d397b149450a", + "metadata": {}, + "outputs": [], + "source": [ + "sub_processes_wid = [\n", + " model.ProduceAmountActivity(\n", + " env=my_env,\n", + " WIDprocessor=wid,\n", + " destination =wid,\n", + " origin=Dredging_site,\n", + " name='WID activity',\n", + " registry=registry,\n", + " amount=1740,\n", + " duration=0.5*3600,\n", + " ),\n", + "]\n", + "\n", + "activities_wid = model.WhileActivity(\n", + " env=my_env,\n", + " name='While activity',\n", + " registry=registry,\n", + " sub_processes=sub_processes_wid,\n", + " condition_event=[\n", + " {\"type\":\"container\", \"concept\":Dredging_site,\"state\":\"empty\"}\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "e7504c98", + "metadata": {}, + "source": [ + "#### 5. Register the processes and run the simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8c8a8d73-d9b1-40fd-8f5c-f44063a41a2d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mover tshd destination amazonehaven\n", + "updating to destination geometry POINT (4.057883 51.947782)\n", + "mover tshd destination lowsal\n", + "updating to destination geometry POINT (4.077757 52.028624)\n", + "mover tshd destination amazonehaven\n", + "updating to destination geometry POINT (4.057883 51.947782)\n", + "mover tshd destination lowsal\n", + "updating to destination geometry POINT (4.077757 52.028624)\n", + "mover tshd destination amazonehaven\n", + "updating to destination geometry POINT (4.057883 51.947782)\n", + "mover tshd destination lowsal\n", + "updating to destination geometry POINT (4.077757 52.028624)\n", + "mover tshd destination amazonehaven\n", + "updating to destination geometry POINT (4.057883 51.947782)\n", + "mover tshd destination lowsal\n", + "updating to destination geometry POINT (4.077757 52.028624)\n" + ] + } + ], + "source": [ + "model.register_processes([activities_tshd])\n", + "model.register_processes([activities_wid])\n", + "my_env.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7de46511", + "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", + "
ActivityTimestampActivityStategeometrycontainer level
0sailing empty tshd1970-01-01 00:00:00.000000STARTPOINT (4.077757 52.028624)0.0
1sailing empty tshd1970-01-01 00:15:09.807691STOPPOINT (4.057883 51.947782)0.0
2loading tshd1970-01-01 00:15:09.807691STARTPOINT (4.057883 51.947782)0.0
3loading tshd1970-01-01 03:15:09.807691STOPPOINT (4.057883 51.947782)25000.0
4sailing full tshd1970-01-01 03:15:09.807691STARTPOINT (4.057883 51.947782)25000.0
5sailing full tshd1970-01-01 03:27:47.980766STOPPOINT (4.077757 52.028624)25000.0
6unloading tshd1970-01-01 03:27:47.980766STARTPOINT (4.077757 52.028624)25000.0
7unloading tshd1970-01-01 03:57:47.980766STOPPOINT (4.077757 52.028624)0.0
8sailing empty tshd1970-01-01 03:57:47.980766STARTPOINT (4.077757 52.028624)0.0
9sailing empty tshd1970-01-01 04:12:57.788457STOPPOINT (4.057883 51.947782)0.0
10loading tshd1970-01-01 04:12:57.788457STARTPOINT (4.057883 51.947782)0.0
11loading tshd1970-01-01 07:12:57.788457STOPPOINT (4.057883 51.947782)25000.0
12sailing full tshd1970-01-01 07:12:57.788457STARTPOINT (4.057883 51.947782)25000.0
13sailing full tshd1970-01-01 07:25:35.961532STOPPOINT (4.077757 52.028624)25000.0
14unloading tshd1970-01-01 07:25:35.961532STARTPOINT (4.077757 52.028624)25000.0
15unloading tshd1970-01-01 07:55:35.961532STOPPOINT (4.077757 52.028624)0.0
16sailing empty tshd1970-01-01 07:55:35.961532STARTPOINT (4.077757 52.028624)0.0
17sailing empty tshd1970-01-01 08:10:45.769223STOPPOINT (4.057883 51.947782)0.0
18loading tshd1970-01-01 08:10:45.769223STARTPOINT (4.057883 51.947782)0.0
19loading tshd1970-01-01 11:10:45.769223STOPPOINT (4.057883 51.947782)25000.0
20sailing full tshd1970-01-01 11:10:45.769223STARTPOINT (4.057883 51.947782)25000.0
21sailing full tshd1970-01-01 11:23:23.942298STOPPOINT (4.077757 52.028624)25000.0
22unloading tshd1970-01-01 11:23:23.942298STARTPOINT (4.077757 52.028624)25000.0
23unloading tshd1970-01-01 11:53:23.942298STOPPOINT (4.077757 52.028624)0.0
24sailing empty tshd1970-01-01 11:53:23.942298STARTPOINT (4.077757 52.028624)0.0
25sailing empty tshd1970-01-01 12:08:33.749989STOPPOINT (4.057883 51.947782)0.0
26loading tshd1970-01-01 12:08:33.749989STARTPOINT (4.057883 51.947782)0.0
27loading tshd1970-01-01 15:08:33.749989STOPPOINT (4.057883 51.947782)25000.0
28sailing full tshd1970-01-01 15:08:33.749989STARTPOINT (4.057883 51.947782)25000.0
29sailing full tshd1970-01-01 15:21:11.923064STOPPOINT (4.077757 52.028624)25000.0
30unloading tshd1970-01-01 15:21:11.923064STARTPOINT (4.077757 52.028624)25000.0
31unloading tshd1970-01-01 15:51:11.923064STOPPOINT (4.077757 52.028624)0.0
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 sailing empty tshd 1970-01-01 00:00:00.000000 START \n", + "1 sailing empty tshd 1970-01-01 00:15:09.807691 STOP \n", + "2 loading tshd 1970-01-01 00:15:09.807691 START \n", + "3 loading tshd 1970-01-01 03:15:09.807691 STOP \n", + "4 sailing full tshd 1970-01-01 03:15:09.807691 START \n", + "5 sailing full tshd 1970-01-01 03:27:47.980766 STOP \n", + "6 unloading tshd 1970-01-01 03:27:47.980766 START \n", + "7 unloading tshd 1970-01-01 03:57:47.980766 STOP \n", + "8 sailing empty tshd 1970-01-01 03:57:47.980766 START \n", + "9 sailing empty tshd 1970-01-01 04:12:57.788457 STOP \n", + "10 loading tshd 1970-01-01 04:12:57.788457 START \n", + "11 loading tshd 1970-01-01 07:12:57.788457 STOP \n", + "12 sailing full tshd 1970-01-01 07:12:57.788457 START \n", + "13 sailing full tshd 1970-01-01 07:25:35.961532 STOP \n", + "14 unloading tshd 1970-01-01 07:25:35.961532 START \n", + "15 unloading tshd 1970-01-01 07:55:35.961532 STOP \n", + "16 sailing empty tshd 1970-01-01 07:55:35.961532 START \n", + "17 sailing empty tshd 1970-01-01 08:10:45.769223 STOP \n", + "18 loading tshd 1970-01-01 08:10:45.769223 START \n", + "19 loading tshd 1970-01-01 11:10:45.769223 STOP \n", + "20 sailing full tshd 1970-01-01 11:10:45.769223 START \n", + "21 sailing full tshd 1970-01-01 11:23:23.942298 STOP \n", + "22 unloading tshd 1970-01-01 11:23:23.942298 START \n", + "23 unloading tshd 1970-01-01 11:53:23.942298 STOP \n", + "24 sailing empty tshd 1970-01-01 11:53:23.942298 START \n", + "25 sailing empty tshd 1970-01-01 12:08:33.749989 STOP \n", + "26 loading tshd 1970-01-01 12:08:33.749989 START \n", + "27 loading tshd 1970-01-01 15:08:33.749989 STOP \n", + "28 sailing full tshd 1970-01-01 15:08:33.749989 START \n", + "29 sailing full tshd 1970-01-01 15:21:11.923064 STOP \n", + "30 unloading tshd 1970-01-01 15:21:11.923064 START \n", + "31 unloading tshd 1970-01-01 15:51:11.923064 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.077757 52.028624) 0.0 \n", + "1 POINT (4.057883 51.947782) 0.0 \n", + "2 POINT (4.057883 51.947782) 0.0 \n", + "3 POINT (4.057883 51.947782) 25000.0 \n", + "4 POINT (4.057883 51.947782) 25000.0 \n", + "5 POINT (4.077757 52.028624) 25000.0 \n", + "6 POINT (4.077757 52.028624) 25000.0 \n", + "7 POINT (4.077757 52.028624) 0.0 \n", + "8 POINT (4.077757 52.028624) 0.0 \n", + "9 POINT (4.057883 51.947782) 0.0 \n", + "10 POINT (4.057883 51.947782) 0.0 \n", + "11 POINT (4.057883 51.947782) 25000.0 \n", + "12 POINT (4.057883 51.947782) 25000.0 \n", + "13 POINT (4.077757 52.028624) 25000.0 \n", + "14 POINT (4.077757 52.028624) 25000.0 \n", + "15 POINT (4.077757 52.028624) 0.0 \n", + "16 POINT (4.077757 52.028624) 0.0 \n", + "17 POINT (4.057883 51.947782) 0.0 \n", + "18 POINT (4.057883 51.947782) 0.0 \n", + "19 POINT (4.057883 51.947782) 25000.0 \n", + "20 POINT (4.057883 51.947782) 25000.0 \n", + "21 POINT (4.077757 52.028624) 25000.0 \n", + "22 POINT (4.077757 52.028624) 25000.0 \n", + "23 POINT (4.077757 52.028624) 0.0 \n", + "24 POINT (4.077757 52.028624) 0.0 \n", + "25 POINT (4.057883 51.947782) 0.0 \n", + "26 POINT (4.057883 51.947782) 0.0 \n", + "27 POINT (4.057883 51.947782) 25000.0 \n", + "28 POINT (4.057883 51.947782) 25000.0 \n", + "29 POINT (4.077757 52.028624) 25000.0 \n", + "30 POINT (4.077757 52.028624) 25000.0 \n", + "31 POINT (4.077757 52.028624) 0.0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(tshd, [activities_tshd, *subprocesses_tshd]))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b86e412e-d68c-4041-b687-6379680a6d13", + "metadata": {}, + "outputs": [], + "source": [ + "df_WID = pd.concat(\n", + " [\n", + " plot.get_log_dataframe(wid, [activities_wid, *sub_processes_wid])\n", + " for act in sub_processes_wid\n", + " ]\n", + ").sort_values(by=['Timestamp'])\n", + "df_SITE = pd.concat(\n", + " [\n", + " plot.get_log_dataframe(Dredging_site, [activities_wid, *sub_processes_wid])\n", + " for act in sub_processes_wid\n", + " ]\n", + ").sort_values(by=['Timestamp'])" + ] + }, + { + "cell_type": "markdown", + "id": "8ed56f95", + "metadata": {}, + "source": [ + "#### 6. Obtain activity log" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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
0WID activity1970-01-01 00:00:00STARTPOINT (4.057883 51.947782)0.0
1WID activity1970-01-01 00:30:00STOPPOINT (4.057883 51.947782)0.0
2WID activity1970-01-01 00:30:00STARTPOINT (4.057883 51.947782)0.0
3WID activity1970-01-01 01:00:00STOPPOINT (4.057883 51.947782)0.0
4WID activity1970-01-01 01:00:00STARTPOINT (4.057883 51.947782)0.0
5WID activity1970-01-01 01:30:00STOPPOINT (4.057883 51.947782)0.0
6WID activity1970-01-01 01:30:00STARTPOINT (4.057883 51.947782)0.0
7WID activity1970-01-01 02:00:00STOPPOINT (4.057883 51.947782)0.0
8WID activity1970-01-01 02:00:00STARTPOINT (4.057883 51.947782)0.0
9WID activity1970-01-01 02:30:00STOPPOINT (4.057883 51.947782)0.0
10WID activity1970-01-01 02:30:00STARTPOINT (4.057883 51.947782)0.0
11WID activity1970-01-01 03:00:00STOPPOINT (4.057883 51.947782)0.0
12WID activity1970-01-01 03:00:00STARTPOINT (4.057883 51.947782)0.0
13WID activity1970-01-01 03:30:00STOPPOINT (4.057883 51.947782)0.0
14WID activity1970-01-01 03:30:00STARTPOINT (4.057883 51.947782)0.0
15WID activity1970-01-01 04:00:00STOPPOINT (4.057883 51.947782)0.0
16WID activity1970-01-01 04:00:00STARTPOINT (4.057883 51.947782)0.0
17WID activity1970-01-01 04:30:00STOPPOINT (4.057883 51.947782)0.0
18WID activity1970-01-01 04:30:00STARTPOINT (4.057883 51.947782)0.0
19WID activity1970-01-01 05:00:00STOPPOINT (4.057883 51.947782)0.0
20WID activity1970-01-01 05:00:00STARTPOINT (4.057883 51.947782)0.0
21WID activity1970-01-01 05:30:00STOPPOINT (4.057883 51.947782)0.0
22WID activity1970-01-01 05:30:00STARTPOINT (4.057883 51.947782)0.0
23WID activity1970-01-01 06:00:00STOPPOINT (4.057883 51.947782)0.0
24WID activity1970-01-01 06:00:00STARTPOINT (4.057883 51.947782)0.0
25WID activity1970-01-01 06:30:00STOPPOINT (4.057883 51.947782)0.0
26WID activity1970-01-01 06:30:00STARTPOINT (4.057883 51.947782)0.0
27WID activity1970-01-01 07:00:00STOPPOINT (4.057883 51.947782)0.0
28WID activity1970-01-01 07:00:00STARTPOINT (4.057883 51.947782)0.0
29WID activity1970-01-01 07:30:00STOPPOINT (4.057883 51.947782)0.0
30WID activity1970-01-01 07:30:00STARTPOINT (4.057883 51.947782)0.0
31WID activity1970-01-01 08:00:00STOPPOINT (4.057883 51.947782)0.0
32WID activity1970-01-01 08:00:00STARTPOINT (4.057883 51.947782)0.0
33WID activity1970-01-01 08:30:00STOPPOINT (4.057883 51.947782)0.0
34WID activity1970-01-01 08:30:00STARTPOINT (4.057883 51.947782)0.0
35WID activity1970-01-01 09:00:00STOPPOINT (4.057883 51.947782)0.0
36WID activity1970-01-01 09:00:00STARTPOINT (4.057883 51.947782)0.0
37WID activity1970-01-01 09:30:00STOPPOINT (4.057883 51.947782)0.0
38WID activity1970-01-01 09:30:00STARTPOINT (4.057883 51.947782)0.0
39WID activity1970-01-01 10:00:00STOPPOINT (4.057883 51.947782)0.0
40WID activity1970-01-01 10:00:00STARTPOINT (4.057883 51.947782)0.0
41WID activity1970-01-01 10:30:00STOPPOINT (4.057883 51.947782)0.0
42WID activity1970-01-01 10:30:00STARTPOINT (4.057883 51.947782)0.0
43WID activity1970-01-01 11:00:00STOPPOINT (4.057883 51.947782)0.0
44WID activity1970-01-01 11:00:00STARTPOINT (4.057883 51.947782)0.0
45WID activity1970-01-01 11:30:00STOPPOINT (4.057883 51.947782)0.0
46WID activity1970-01-01 11:30:00STARTPOINT (4.057883 51.947782)0.0
47WID activity1970-01-01 12:00:00STOPPOINT (4.057883 51.947782)0.0
48WID activity1970-01-01 12:00:00STARTPOINT (4.057883 51.947782)0.0
49WID activity1970-01-01 12:30:00STOPPOINT (4.057883 51.947782)0.0
50WID activity1970-01-01 12:30:00STARTPOINT (4.057883 51.947782)0.0
51WID activity1970-01-01 13:00:00STOPPOINT (4.057883 51.947782)0.0
52WID activity1970-01-01 13:00:00STARTPOINT (4.057883 51.947782)0.0
53WID activity1970-01-01 13:30:00STOPPOINT (4.057883 51.947782)0.0
54WID activity1970-01-01 13:30:00STARTPOINT (4.057883 51.947782)0.0
55WID activity1970-01-01 14:00:00STOPPOINT (4.057883 51.947782)0.0
56WID activity1970-01-01 14:00:00STARTPOINT (4.057883 51.947782)0.0
57WID activity1970-01-01 14:30:00STOPPOINT (4.057883 51.947782)0.0
\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState \\\n", + "0 WID activity 1970-01-01 00:00:00 START \n", + "1 WID activity 1970-01-01 00:30:00 STOP \n", + "2 WID activity 1970-01-01 00:30:00 START \n", + "3 WID activity 1970-01-01 01:00:00 STOP \n", + "4 WID activity 1970-01-01 01:00:00 START \n", + "5 WID activity 1970-01-01 01:30:00 STOP \n", + "6 WID activity 1970-01-01 01:30:00 START \n", + "7 WID activity 1970-01-01 02:00:00 STOP \n", + "8 WID activity 1970-01-01 02:00:00 START \n", + "9 WID activity 1970-01-01 02:30:00 STOP \n", + "10 WID activity 1970-01-01 02:30:00 START \n", + "11 WID activity 1970-01-01 03:00:00 STOP \n", + "12 WID activity 1970-01-01 03:00:00 START \n", + "13 WID activity 1970-01-01 03:30:00 STOP \n", + "14 WID activity 1970-01-01 03:30:00 START \n", + "15 WID activity 1970-01-01 04:00:00 STOP \n", + "16 WID activity 1970-01-01 04:00:00 START \n", + "17 WID activity 1970-01-01 04:30:00 STOP \n", + "18 WID activity 1970-01-01 04:30:00 START \n", + "19 WID activity 1970-01-01 05:00:00 STOP \n", + "20 WID activity 1970-01-01 05:00:00 START \n", + "21 WID activity 1970-01-01 05:30:00 STOP \n", + "22 WID activity 1970-01-01 05:30:00 START \n", + "23 WID activity 1970-01-01 06:00:00 STOP \n", + "24 WID activity 1970-01-01 06:00:00 START \n", + "25 WID activity 1970-01-01 06:30:00 STOP \n", + "26 WID activity 1970-01-01 06:30:00 START \n", + "27 WID activity 1970-01-01 07:00:00 STOP \n", + "28 WID activity 1970-01-01 07:00:00 START \n", + "29 WID activity 1970-01-01 07:30:00 STOP \n", + "30 WID activity 1970-01-01 07:30:00 START \n", + "31 WID activity 1970-01-01 08:00:00 STOP \n", + "32 WID activity 1970-01-01 08:00:00 START \n", + "33 WID activity 1970-01-01 08:30:00 STOP \n", + "34 WID activity 1970-01-01 08:30:00 START \n", + "35 WID activity 1970-01-01 09:00:00 STOP \n", + "36 WID activity 1970-01-01 09:00:00 START \n", + "37 WID activity 1970-01-01 09:30:00 STOP \n", + "38 WID activity 1970-01-01 09:30:00 START \n", + "39 WID activity 1970-01-01 10:00:00 STOP \n", + "40 WID activity 1970-01-01 10:00:00 START \n", + "41 WID activity 1970-01-01 10:30:00 STOP \n", + "42 WID activity 1970-01-01 10:30:00 START \n", + "43 WID activity 1970-01-01 11:00:00 STOP \n", + "44 WID activity 1970-01-01 11:00:00 START \n", + "45 WID activity 1970-01-01 11:30:00 STOP \n", + "46 WID activity 1970-01-01 11:30:00 START \n", + "47 WID activity 1970-01-01 12:00:00 STOP \n", + "48 WID activity 1970-01-01 12:00:00 START \n", + "49 WID activity 1970-01-01 12:30:00 STOP \n", + "50 WID activity 1970-01-01 12:30:00 START \n", + "51 WID activity 1970-01-01 13:00:00 STOP \n", + "52 WID activity 1970-01-01 13:00:00 START \n", + "53 WID activity 1970-01-01 13:30:00 STOP \n", + "54 WID activity 1970-01-01 13:30:00 START \n", + "55 WID activity 1970-01-01 14:00:00 STOP \n", + "56 WID activity 1970-01-01 14:00:00 START \n", + "57 WID activity 1970-01-01 14:30:00 STOP \n", + "\n", + " geometry container level \n", + "0 POINT (4.057883 51.947782) 0.0 \n", + "1 POINT (4.057883 51.947782) 0.0 \n", + "2 POINT (4.057883 51.947782) 0.0 \n", + "3 POINT (4.057883 51.947782) 0.0 \n", + "4 POINT (4.057883 51.947782) 0.0 \n", + "5 POINT (4.057883 51.947782) 0.0 \n", + "6 POINT (4.057883 51.947782) 0.0 \n", + "7 POINT (4.057883 51.947782) 0.0 \n", + "8 POINT (4.057883 51.947782) 0.0 \n", + "9 POINT (4.057883 51.947782) 0.0 \n", + "10 POINT (4.057883 51.947782) 0.0 \n", + "11 POINT (4.057883 51.947782) 0.0 \n", + "12 POINT (4.057883 51.947782) 0.0 \n", + "13 POINT (4.057883 51.947782) 0.0 \n", + "14 POINT (4.057883 51.947782) 0.0 \n", + "15 POINT (4.057883 51.947782) 0.0 \n", + "16 POINT (4.057883 51.947782) 0.0 \n", + "17 POINT (4.057883 51.947782) 0.0 \n", + "18 POINT (4.057883 51.947782) 0.0 \n", + "19 POINT (4.057883 51.947782) 0.0 \n", + "20 POINT (4.057883 51.947782) 0.0 \n", + "21 POINT (4.057883 51.947782) 0.0 \n", + "22 POINT (4.057883 51.947782) 0.0 \n", + "23 POINT (4.057883 51.947782) 0.0 \n", + "24 POINT (4.057883 51.947782) 0.0 \n", + "25 POINT (4.057883 51.947782) 0.0 \n", + "26 POINT (4.057883 51.947782) 0.0 \n", + "27 POINT (4.057883 51.947782) 0.0 \n", + "28 POINT (4.057883 51.947782) 0.0 \n", + "29 POINT (4.057883 51.947782) 0.0 \n", + "30 POINT (4.057883 51.947782) 0.0 \n", + "31 POINT (4.057883 51.947782) 0.0 \n", + "32 POINT (4.057883 51.947782) 0.0 \n", + "33 POINT (4.057883 51.947782) 0.0 \n", + "34 POINT (4.057883 51.947782) 0.0 \n", + "35 POINT (4.057883 51.947782) 0.0 \n", + "36 POINT (4.057883 51.947782) 0.0 \n", + "37 POINT (4.057883 51.947782) 0.0 \n", + "38 POINT (4.057883 51.947782) 0.0 \n", + "39 POINT (4.057883 51.947782) 0.0 \n", + "40 POINT (4.057883 51.947782) 0.0 \n", + "41 POINT (4.057883 51.947782) 0.0 \n", + "42 POINT (4.057883 51.947782) 0.0 \n", + "43 POINT (4.057883 51.947782) 0.0 \n", + "44 POINT (4.057883 51.947782) 0.0 \n", + "45 POINT (4.057883 51.947782) 0.0 \n", + "46 POINT (4.057883 51.947782) 0.0 \n", + "47 POINT (4.057883 51.947782) 0.0 \n", + "48 POINT (4.057883 51.947782) 0.0 \n", + "49 POINT (4.057883 51.947782) 0.0 \n", + "50 POINT (4.057883 51.947782) 0.0 \n", + "51 POINT (4.057883 51.947782) 0.0 \n", + "52 POINT (4.057883 51.947782) 0.0 \n", + "53 POINT (4.057883 51.947782) 0.0 \n", + "54 POINT (4.057883 51.947782) 0.0 \n", + "55 POINT (4.057883 51.947782) 0.0 \n", + "56 POINT (4.057883 51.947782) 0.0 \n", + "57 POINT (4.057883 51.947782) 0.0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(wid, [activities_wid, *sub_processes_wid]))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "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", + "
ActivityTimestampActivityStatecontainer levelgeometry
0WID activity1970-01-01 00:00:00.000000START150000POINT (4.057883 51.947782)
1loading tshd1970-01-01 00:15:09.807691START148260POINT (4.057883 51.947782)
2WID activity1970-01-01 00:30:00.000000STOP123260POINT (4.057883 51.947782)
3WID activity1970-01-01 00:30:00.000000START123260POINT (4.057883 51.947782)
4WID activity1970-01-01 01:00:00.000000STOP121520POINT (4.057883 51.947782)
..................
61WID activity1970-01-01 13:30:00.000000START3020POINT (4.057883 51.947782)
62WID activity1970-01-01 14:00:00.000000STOP1280POINT (4.057883 51.947782)
63WID activity1970-01-01 14:00:00.000000START1280POINT (4.057883 51.947782)
64WID activity1970-01-01 14:30:00.000000STOP0POINT (4.057883 51.947782)
65loading tshd1970-01-01 15:08:33.749989STOP0POINT (4.057883 51.947782)
\n", + "

66 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " Activity Timestamp ActivityState container level \\\n", + "0 WID activity 1970-01-01 00:00:00.000000 START 150000 \n", + "1 loading tshd 1970-01-01 00:15:09.807691 START 148260 \n", + "2 WID activity 1970-01-01 00:30:00.000000 STOP 123260 \n", + "3 WID activity 1970-01-01 00:30:00.000000 START 123260 \n", + "4 WID activity 1970-01-01 01:00:00.000000 STOP 121520 \n", + ".. ... ... ... ... \n", + "61 WID activity 1970-01-01 13:30:00.000000 START 3020 \n", + "62 WID activity 1970-01-01 14:00:00.000000 STOP 1280 \n", + "63 WID activity 1970-01-01 14:00:00.000000 START 1280 \n", + "64 WID activity 1970-01-01 14:30:00.000000 STOP 0 \n", + "65 loading tshd 1970-01-01 15:08:33.749989 STOP 0 \n", + "\n", + " geometry \n", + "0 POINT (4.057883 51.947782) \n", + "1 POINT (4.057883 51.947782) \n", + "2 POINT (4.057883 51.947782) \n", + "3 POINT (4.057883 51.947782) \n", + "4 POINT (4.057883 51.947782) \n", + ".. ... \n", + "61 POINT (4.057883 51.947782) \n", + "62 POINT (4.057883 51.947782) \n", + "63 POINT (4.057883 51.947782) \n", + "64 POINT (4.057883 51.947782) \n", + "65 POINT (4.057883 51.947782) \n", + "\n", + "[66 rows x 5 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(plot.get_log_dataframe(Dredging_site, [activities_wid, activities_tshd]))" + ] + }, + { + "cell_type": "markdown", + "id": "59143171", + "metadata": {}, + "source": [ + "#### 7. Results in a Gantt chart" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5593e753-8cfd-4b5c-a946-8c8ded7b1f23", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABI8AAAJGCAYAAADSwqVEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB300lEQVR4nO3deXhUZZ7+/7sq+1KVkK2KQNgkiyyCgkDcQE0TBe2h2/42IKMO0jI6oCIuaKuoPXbTYtsu48JgzzT+pkVtekZHaRubwQWViKyyCAn7FioBslRlT6rO748kBSUJJFBJkcr7dV25kHOeOudz0qc13DzP5zEZhmEIAAAAAAAAaIE50AUAAAAAAADgwkV4BAAAAAAAgFYRHgEAAAAAAKBVhEcAAAAAAABoFeERAAAAAAAAWkV4BAAAAAAAgFYRHgEAAAAAAKBVoYEu4ELm8XhUWFgoi8Uik8kU6HIAAAAAAAD8wjAMuVwupaamymw+89wiwqMzKCwsVFpaWqDLAAAAAAAA6BCHDh1S7969zziG8OgMLBaLpMZvpNVqDXA1AAAAAAAA/uF0OpWWlubNPs6E8OgMmpeqWa1WwiMAAAAAABB02tKmh4bZAAAAAAAAaBXhEQAAAAAAAFpFeAQAAAAAAIBW0fMIAAAAAIAO5na7VV9fH+gy0M2Eh4fLbD7/eUOERwAAAAAAdBDDMORwOFRWVhboUtANmc1m9e/fX+Hh4ed1HcIjAAAAAAA6SHNwlJKSoujo6DbtbAX4g8fjUWFhoY4ePao+ffqc17tHeAQAAAAAQAdwu93e4CgxMTHQ5aAbSk5OVmFhoRoaGhQWFnbO16FhNgAAAAAAHaC5x1F0dHSAK0F31bxcze12n9d1CI8AAAAAAOhALFVDoPjr3SM8AgAAAAAAQKsIjwAAAAAAAE7Rr18/vfTSS4Eu44JBeAQAAAAAAIBWER4BAAAAAACgVYRHAAAAAADAx4oVK3TVVVcpPj5eiYmJuummm7Rnzx7v+f3798tkMunPf/6zrr76akVFRenyyy9XQUGB1q1bp5EjRyo2NlY33nijjh075v3cunXr9KMf/UhJSUmKi4vT2LFjtXHjRu/5JUuWyGQynfb19NNPS5I8Ho9+9atfqXfv3oqIiNDw4cO1YsWK0+r6n//5H1177bWKjo7WsGHDlJeX5/N8X331lbfutLQ03XfffaqsrPQZU1VVpTvvvFMWi0V9+vTR4sWLfc7PmzdPGRkZio6O1oABA/Tkk096d9grKCiQyWTSzp07fT7z4osv6qKLLvL+ftu2bbrxxhsVGxsrm82m2267TcePH/eeHzdunO677z498sgjSkhIkN1u934vOhPhEQAAAAAAncQwDFXVNQTkyzCMNtdZWVmpuXPnav369Vq1apXMZrN+8pOfyOPx+Ix76qmn9MQTT2jjxo0KDQ3VrbfeqkceeUQvv/yyvvzyS+3evVvz58/3jne5XLrjjjv01Vdf6ZtvvlF6eromTJggl8slSZo8ebKOHj3q/XrnnXcUGhqqK6+8UpL08ssv64UXXtDvfvc7bdmyRbm5ufrxj3+sXbt2+dT1+OOP66GHHtLmzZuVkZGhqVOnqqGhQZK0Z88e3XDDDbrlllu0ZcsWvffee/rqq680e/Zsn2u88MILGjlypDZt2qR/+Zd/0T333KP8/HzveYvFoiVLluj777/Xyy+/rDfffFMvvviiJCkjI0MjR47U22+/7XPNt99+W7feeqskqaysTNddd50uvfRSrV+/XitWrFBRUZF+/vOf+3zmrbfeUkxMjNauXauFCxfqV7/6lVauXNnm/y39wWS05+3pZpxOp+Li4lReXi6r1RrocgAAAAAAXUhNTY327dun/v37KzIyUpJUVdegQfM/CUg93/8qV9Hhoef02ePHjys5OVlbt27VkCFDtH//fvXv319/+MMfNGPGDEnSu+++q6lTp2rVqlW67rrrJEm//e1vtWTJktNm4DTzeDyKj4/X0qVLddNNN/mc27Nnj0aNGqVHH31UDz/8sCSpV69emjVrln75y196x40aNUqXX365XnvttRbr+v777zV48GDt2LFDWVlZ+sUvfqGQkBD9+7//u/caX331lcaOHavKykpFRkaqX79+uvrqq/Vf//VfkhpDP7vdrmeeeUZ33313i8/yu9/9Tu+++67Wr18vSXrppZf06quvavfu3ZIaZyNlZmZ663j22Wf15Zdf6pNPTr4Phw8fVlpamvLz85WRkaFx48bJ7Xbryy+/9Hne6667Tr/97W/P9j9bi+9gs/ZkHsw8AgAAAAAAPnbt2qWpU6dqwIABslqt6tevnyTp4MGDPuMuueQS7z/bbDZJ0tChQ32OFRcXe39fVFSku+66S+np6YqLi5PValVFRcVp1y0vL9dNN92kiRMneoMjp9OpwsJC7yykZldeeaV27NjRal09e/aUJG8d3333nZYsWaLY2FjvV25urjwej/bt29fiNUwmk+x2u8+zvPfee7ryyitlt9sVGxurJ554wuc5pkyZov379+ubb76R1Djr6LLLLlNWVpa3js8++8ynjuZzpy4RPLWO5uc5tY7OcG6RIwAAAAAAaLeosBB9/6vcgN27rW6++Wb17dtXb775plJTU+XxeDRkyBDV1dX5jAsLC/P+s8lkavHYqUvd7rjjDp04cUIvv/yy+vbtq4iICGVnZ/tc1+12a/LkybJaraf1GWqrlupqrqOiokL//M//rPvuu++0z/Xp06fFa/zwWfLy8jRt2jQ988wzys3NVVxcnN5991298MIL3vF2u13XXXedli5dqjFjxmjp0qW65557vOcrKip0880367nnnjutjubA62x1dBbCIwAAAAAAOonJZDrnpWOd5cSJE8rPz9ebb76pq6++WlLjsi5/+Prrr/X6669rwoQJkqRDhw75NIiWpAceeEBbt27V+vXrfZZaWa1Wpaam6uuvv9bYsWN9rjlq1Kg213DZZZfp+++/18CBA8/5OdasWaO+ffvq8ccf9x47cODAaeOmTZumRx55RFOnTtXevXs1ZcoUnzr++7//W/369VNo6IX9TrBsDQAAAAAAePXo0UOJiYlavHixdu/erU8//VRz5871y7XT09P1X//1X9qxY4fWrl2radOmKSoqynv+j3/8o15//XUtWrRIJpNJDodDDodDFRUVkqSHH35Yzz33nN577z3l5+fr0Ucf1ebNm3X//fe3uYZ58+ZpzZo1mj17tjZv3qxdu3bpf//3f09rmH225zh48KDeffdd7dmzR6+88oref//908b99Kc/lcvl0j333KNrr71Wqamp3nOzZs1SSUmJpk6dqnXr1mnPnj365JNPNH36dLnd7jbX0hkIj4JcVV2D/rzukMqr6gNdCgAAAACgCzCbzXr33Xe1YcMGDRkyRA888ICef/55v1z7P/7jP1RaWqrLLrtMt912m+677z6lpKR4z3/xxRdyu9368Y9/rJ49e3q/fve730mS7rvvPs2dO1cPPvighg4dqhUrVujDDz9Uenp6m2u45JJL9MUXX6igoEBXX321Lr30Us2fP98n2DmbH//4x3rggQc0e/ZsDR8+XGvW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KrT/RKVOVNZpzZ4TWrPnhM+10hKiTtv1rX9SjMJCzJ39WAAAALiA+D08qqqqktns+0NmSEiIPB6PJKl///6y2+1atWqVNyxyOp1au3at7rnnHklSdna2ysrKtGHDBo0YMUKS9Omnn8rj8Wj06NHeMY8//rjq6+sVFta488zKlSuVmZmpHj16eMesWrVKc+bM8daycuVKZWdn+/uxAQC4oISGmDUwJVYDU2I1YejJv6yprnNrV/EpS9+aeioVu2p1qKRah0qq9X87Tv7FS1iISRclx542U6lXfJRMJvopAQAAdAd+D49uvvlm/frXv1afPn00ePBgbdq0Sb///e915513Smr8G9I5c+bo2WefVXp6uvr3768nn3xSqampmjRpkiTp4osv1g033KC77rpLixYtUn19vWbPnq0pU6YoNTVVknTrrbfqmWee0YwZMzRv3jxt27ZNL7/8sl588UVvLffff7/Gjh2rF154QRMnTtS7776r9evXa/Hixf5+bAAAuoSo8BBd0jtel/SO9zleUlmn/KZd306dqVRR26CdjsZjp4qNCG3qp2RVpu3kTKUeMeECAABAcDEZhtHyXsDnyOVy6cknn9T777+v4uJipaamaurUqZo/f753ZzTDMPTUU09p8eLFKisr01VXXaXXX39dGRkZ3uuUlJRo9uzZ+uijj2Q2m3XLLbfolVdeUWxsrHfMli1bNGvWLK1bt05JSUm69957NW/ePJ96li1bpieeeEL79+9Xenq6Fi5cqAkTJrTpWdqzbR0AAMHGMAwdKas+bde3PccqVO9u+ceHZEtE4+ykU3Z9S0+xKCo8pJOrBwAAwJm0J/Pwe3gUTAiPAAA4Xb3bo33HK71L33Y6XMovcupQSXWL400mqW9CtHfXt0xb49K3fonRCqWfEgAAQEAQHvkJ4REAAG1XWduggqYZSjublsDlO1w6UVnX4vjwULMGJsee3PGtaaaS3RpJPyUAAIAORnjkJ4RHAACcv2OuWp9eSvlFFSpwuFRd725xvDUytGmWku9MpbiosE6uHAAAIHgRHvkJ4REAAB3D4zF0uLRaOx3OxplKRY1L4PYer5Tb0/KPJj3jIhsDJZvFGy5dlByryDD6KQEAALQX4ZGfEB4BANC5ahvc2lNcedqub0fKWu6nFGI2qV9itLLsVmU0hUpZdovSEqIVYmbpGwAAQGsI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IvTUU08pIiIi0KUggHgPIPEeoBHvAZrxLkDiPUAj3gM0411AS2iYDQAAAAAAgFYx8wgAAAAAAACtIjwCAAAAAABAqwiPAAAAAAAA0CrCIwAAAAAAALSK8AgAAAAAAACtIjwKgNdee039+vVTZGSkRo8erW+//dbn/OLFizVu3DhZrVaZTCaVlZW16boHDx7UxIkTFR0drZSUFD388MNqaGjwnj969KhuvfVWZWRkyGw2a86cOX65riR9/vnnuuyyyxQREaGBAwdqyZIlbbp2dxZs78H//M//6Ec/+pGSk5NltVqVnZ2tTz75pE3X7s6C7T041ddff63Q0FANHz68TdfuzoLxPaitrdXjjz+uvn37KiIiQv369dN//ud/tun63Vkwvgtvv/22hg0bpujoaPXs2VN33nmnTpw40abrd1dd7T247777NGLECEVERLT67/wtW7bo6quvVmRkpNLS0rRw4cI2Xbs7C7b34PPPP9c//MM/qGfPnoqJidHw4cP19ttvt+na3V2wvQun2r17tywWi+Lj49t0bQQO4VEne++99zR37lw99dRT2rhxo4YNG6bc3FwVFxd7x1RVVemGG27QL3/5yzZf1+12a+LEiaqrq9OaNWv01ltvacmSJZo/f753TG1trZKTk/XEE09o2LBhfrvuvn37NHHiRF177bXavHmz5syZo1/84hcEB2cQjO/B6tWr9aMf/Ugff/yxNmzYoGuvvVY333yzNm3a1Ob6u5tgfA+alZWV6fbbb9f111/f5rq7q2B9D37+859r1apV+o//+A/l5+frnXfeUWZmZpvr746C8V34+uuvdfvtt2vGjBnavn27li1bpm+//VZ33XVXm+vvbrrae9Dszjvv1OTJk1s853Q6NX78ePXt21cbNmzQ888/r6efflqLFy9u1z26k2B8D9asWaNLLrlE//3f/60tW7Zo+vTpuv3227V8+fJ23aO7CcZ3oVl9fb2mTp2qq6++ul3XRoAY6FSjRo0yZs2a5f292+02UlNTjQULFpw29rPPPjMkGaWlpWe97scff2yYzWbD4XB4j73xxhuG1Wo1amtrTxs/duxY4/777/fLdR955BFj8ODBPp+bPHmykZube9brd1fB+B60ZNCgQcYzzzxz1ut3V8H8HkyePNl44oknjKeeesoYNmzYWa/dnQXje/C3v/3NiIuLM06cOHHW6+GkYHwXnn/+eWPAgAE+n3vllVeMXr16nfX63VVXew9O1dq/819//XWjR48ePveZN2+ekZmZ2a7rdyfB+B60ZMKECcb06dPbdf3uJpjfhUceecT4x3/8R+OPf/yjERcX165ro/Mx86gT1dXVacOGDcrJyfEeM5vNysnJUV5e3nldOy8vT0OHDpXNZvMey83NldPp1Pbt2zv0unl5eT7P1DzmfJ8pWAXre/BDHo9HLpdLCQkJ53zfYBbM78Ef//hH7d27V0899dQ536u7CNb34MMPP9TIkSO1cOFC9erVSxkZGXrooYdUXV197g8U5IL1XcjOztahQ4f08ccfyzAMFRUV6S9/+YsmTJhw7g8UxLrie9DWe19zzTUKDw/3uXd+fr5KS0s79N5dUbC+By0pLy/nZ8UzCOZ34dNPP9WyZcv02muvdfi94B+ER53o+PHjcrvdPv8HlSSbzSaHw3Fe13Y4HC1et/lcR163tTFOp5M/KLQgWN+DH/rd736niooK/fznPz/n+wazYH0Pdu3apUcffVR/+tOfFBoaes736i6C9T3Yu3evvvrqK23btk3vv/++XnrpJf3lL3/Rv/zLv5zzfYNdsL4LV155pd5++21NnjxZ4eHhstvtiouL4w8LreiK78GFfu+uKFjfgx/685//rHXr1mn69Omdet+uJFjfhRMnTuif/umftGTJElmt1g69F/yH8KgLuvHGGxUbG6vY2FgNHjw40OUgQC7k92Dp0qV65pln9Oc//1kpKSmBLieoXUjvgdvt1q233qpnnnlGGRkZAa2lu7mQ3gOpceahyWTS22+/rVGjRmnChAn6/e9/r7feeou/VOhgF9q78P333+v+++/X/PnztWHDBq1YsUL79+/X3XffHejSgtqF9h4gMC7k9+Czzz7T9OnT9eabb15wtQWjC+1duOuuu3TrrbfqmmuuCXQpaAf+WrgTJSUlKSQkREVFRT7Hi4qKZLfb23ydP/zhD94fvsPCwiRJdrv9tK77zfdpz7V/qC3XtdvtLT6T1WpVVFTUOd87WAXre9Ds3Xff1S9+8QstW7bstOWMOCkY3wOXy6X169dr06ZNmj17tqTGEMEwDIWGhurvf/+7rrvuunO+fzAKxvdAknr27KlevXopLi7OO+biiy+WYRg6fPiw0tPTz/n+wSpY34UFCxboyiuv1MMPPyxJuuSSSxQTE6Orr75azz77rHr27HnO9w9GXfE9aIvWflbsjHt3RcH6HjT74osvdPPNN+vFF1/U7bff3in37KqC9V349NNP9eGHH+p3v/udJMkwDHk8HoWGhmrx4sW68847O/T+ODfMPOpE4eHhGjFihFatWuU95vF4tGrVKmVnZ7f5Or169dLAgQM1cOBA9e3bV1JjT4GtW7f6dN1fuXKlrFarBg0adM41t+W62dnZPs/UPKY9z9SdBOt7IEnvvPOOpk+frnfeeUcTJ0485/t1B8H4HlitVm3dulWbN2/2ft19993KzMzU5s2bNXr06HO+d7AKxvdAalyqVFhYqIqKCu+YgoICmc1m9e7d+5zvHcyC9V2oqqqS2ez742ZISIikxj8swFdXfA/aIjs7W6tXr1Z9fb3PvTMzM9WjR48OvXdXFKzvgSR9/vnnmjhxop577jnNnDmzw+/X1QXru5CXl+fz8+KvfvUrWSwWbd68WT/5yU869N44DwFt190Nvfvuu0ZERISxZMkS4/vvvzdmzpxpxMfH+3S5P3r0qLFp0ybjzTffNCQZq1evNjZt2nTGXWsaGhqMIUOGGOPHjzc2b95srFixwkhOTjYee+wxn3GbNm0yNm3aZIwYMcK49dZbjU2bNhnbt28/r+vu3bvXiI6ONh5++GFjx44dxmuvvWaEhIQYK1asOI/vVHALxvfg7bffNkJDQ43XXnvNOHr0qPerrKzsPL5TwS0Y34MfYre1swvG98Dlchm9e/c2fvaznxnbt283vvjiCyM9Pd34xS9+cR7fqeAXjO/CH//4RyM0NNR4/fXXjT179hhfffWVMXLkSGPUqFHn8Z0Kbl3tPTAMw9i1a5exadMm45//+Z+NjIwM7zWad2wqKyszbDabcdtttxnbtm0z3n33XSM6Otr493//9/P4TgW3YHwPPv30UyM6Otp47LHHfH5WZGfOMwvGd+GH2G2tayA8CoB/+7d/M/r06WOEh4cbo0aNMr755huf80899ZQh6bSvP/7xj2e87v79+40bb7zRiIqKMpKSkowHH3zQqK+v9xnT0nX79u173tf97LPPjOHDhxvh4eHGgAEDzlorgu89GDt2bIvXveOOO9rzbel2gu09+CHCo7YJxvdgx44dRk5OjhEVFWX07t3bmDt3rlFVVdXm70l3FYzvwiuvvGIMGjTIiIqKMnr27GlMmzbNOHz4cJu/J91RV3sPWvsZYN++fd4x3333nXHVVVcZERERRq9evYzf/va37fmWdEvB9h7ccccdLZ4fO3ZsO78z3U+wvQs/RHjUNZgMgznDAAAAAAAAaBk9jwAAAAAAANAqwiMAAAAAAAC0ivAIAAAAAAAArSI8AgAAAAAAQKsIjwAAAAAAANAqwiMAAAAAAAC0ivAIAAAAAAAArSI8AgAAAAAAQKsIjwAAAAAAANAqwiMAAAAAAAC0ivAIAAAAAAAArfr/AXPPg6ieC2RpAAAAAElFTkSuQmCC\n", + "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": "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 +} diff --git a/notebooks/Untitled.ipynb b/notebooks/Untitled.ipynb new file mode 100644 index 00000000..e9bc716f --- /dev/null +++ b/notebooks/Untitled.ipynb @@ -0,0 +1,71 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 18, + "id": "aa5d2231", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/plain": [ + "-27.0" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import io\n", + "import requests\n", + "resp = requests.get('https://waterinfo.rws.nl/api/chart/get?mapType=waterhoogte&locationCode=Hoek-van-Holland(HOEK)&values=-48%2C48')\n", + "print (resp)\n", + "# data = resp.json()\n", + "resp.content\n", + "# pd.DataFrame(io.StringIO(resp.text))\n", + "df = pd.read_csv(io.StringIO(resp.text), sep=';')\n", + "df.iloc[10]\n", + "df.iloc[10]['Waterhoogte Oppervlaktewater t.o.v. Normaal Amsterdams Peil in cm']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "641d8658", + "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 +} 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/barge_specs.csv b/notebooks/barge_specs.csv new file mode 100644 index 00000000..337b43be --- /dev/null +++ b/notebooks/barge_specs.csv @@ -0,0 +1,4 @@ +barge_name,sailing empty [kW],loading [kW],sailing full [kW],unloading [kW],WAIT [kW],fuel_type +barge I,300,100,500,150,30,Diesel +barge II,300,100,500,150,30,Diesel +barge III,300,100,500,150,30,Diesel 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 00000000..52eb04ba Binary files /dev/null and b/notebooks/figure4_24_cutters and barges scenarios.png differ 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..f33d95ef --- /dev/null +++ b/notebooks/vessel_specs.csv @@ -0,0 +1,7 @@ +vessel_name,rates [€/day],sailing empty [kW],loading [kW],sailing full [kW],unloading [kW],WAIT [kW],vessel_type,fuel_type +barge I,5000,1000,1000,2500,2500,20,barge,Diesel +barge II,5000,1000,1000,2500,2500,20,barge,Diesel +barge III,5000,1000,1000,2500,2500,20,barge,Diesel +tshd I,15000,2000,10000,5000,6000,100,TSHD,LNG +tshd II,15000,2000,10000,5000,6000,100,TSHD,LNG +backhoe,25000,0,15000,0,0,500,BHD,MGO diff --git a/setup.cfg b/setup.cfg index 0f1ae2e9..a5e6d60c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,9 +34,11 @@ install_requires = simpy shapely pyproj - nose plotly matplotlib + networkx + # https://github.com/tantale/deprecated + Deprecated [options.packages.find] where = src @@ -51,6 +53,7 @@ exclude = # Add here test requirements (semicolon/line-separated) testing = coverage-badge + nose faker lxml mock diff --git a/src/openclsim/core/__init__.py b/src/openclsim/core/__init__.py index 4f93e71a..b91470fe 100644 --- a/src/openclsim/core/__init__.py +++ b/src/openclsim/core/__init__.py @@ -6,9 +6,16 @@ from .locatable import Locatable from .log import Log, LogState from .movable import ContainerDependentMovable, Movable, MultiContainerDependentMovable +from .movable2 import ContainerDependentMovable2, Movable2, MultiContainerDependentMovable2 from .processor import LoadingFunction, Processor, UnloadingFunction from .resource import HasResource from .simpy_object import SimpyObject +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", @@ -22,9 +29,24 @@ "Movable", "ContainerDependentMovable", "MultiContainerDependentMovable", + "Movable2", + "ContainerDependentMovable2", + "MultiContainerDependentMovable2", "Processor", "LoadingFunction", "UnloadingFunction", "HasResource", "SimpyObject", + "HasPriorityResource", + "PriorityVessel", + "Port", + "HasDraught", + "HasActualWaterLevel", + "HasLowestAstronomicalTide", + "HasMaintainedBedLevel", + "HasNavigability", + "HasDredging", + "Processor_wid", + "WIDLoadingFunction", + "WIDUnloadingFunction", ] diff --git a/src/openclsim/core/access.py b/src/openclsim/core/access.py new file mode 100644 index 00000000..02005d29 --- /dev/null +++ b/src/openclsim/core/access.py @@ -0,0 +1,28 @@ +from .simpy_object import SimpyObject + +class HasDredging(SimpyObject): + 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 + +class HasTide(SimpyObject): + def __init__(self, UKC, T, *args, **kwargs): + """ + Support for tide. + UKC: under keel clearance [m] + T: draught of the vessel [m] + """ + super().__init__(*args, **kwargs) + # TODO: make consistent or share with opentnsim + self.UKC = UKC + self.T = T diff --git a/src/openclsim/core/indicators.py b/src/openclsim/core/indicators.py new file mode 100644 index 00000000..cefa0e17 --- /dev/null +++ b/src/openclsim/core/indicators.py @@ -0,0 +1,224 @@ +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, 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.water_level = water_level + self.accessibility = 0.3 # Starts at 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): + # Check if water level is appropriate for navigating + 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 + + 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 + + # 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 + + # (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 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)) 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 ---------- diff --git a/src/openclsim/core/log.py b/src/openclsim/core/log.py index 25e80073..d46ece17 100644 --- a/src/openclsim/core/log.py +++ b/src/openclsim/core/log.py @@ -1,7 +1,12 @@ """Component to log the simulation objects.""" import datetime +import numbers +import warnings from enum import Enum +import deprecated +import pandas as pd + from .simpy_object import SimpyObject @@ -25,15 +30,43 @@ class Log(SimpyObject): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) """Initialization""" - self.log = { - "Timestamp": [], - "ActivityID": [], - "ActivityState": [], - "ObjectState": [], - "ActivityLabel": [], - } + # record oriented list of log messages + self.logbook = [] + + @property + 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": [], + "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 - def log_entry( + # 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, activity_id, @@ -41,6 +74,12 @@ def log_entry( additional_state=None, 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() if additional_state: object_state.update(additional_state) @@ -53,11 +92,40 @@ def log_entry( 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: numbers.Number, value, geometry_log): + """Log an entry (opentnsim version)""" + 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) + + @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") + 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) def get_state(self): """ @@ -66,7 +134,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 59f5ecc6..48ea1810 100644 --- a/src/openclsim/core/movable.py +++ b/src/openclsim/core/movable.py @@ -1,15 +1,37 @@ """Component to move the simulation objects.""" +import itertools import logging +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 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 = itertools.tee(iterable) + next(b, None) + return zip(a, b) + + logger = logging.getLogger(__name__) +# we only have one earth, defined here. +WGS84 = pyproj.Geod(ellps="WGS84") + class Movable(SimpyObject, Locatable): """ @@ -20,60 +42,87 @@ 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._v = v + self.engine_order = 1.0 - def move(self, destination, engine_order=1.0, duration=None): + def move( + self, + destination: Locatable = None, + duration: float = None, + engine_order: float = 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") + + # 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( + self.log_entry_v1( self.env.now, self.activity_id, LogState.START, ) # Determine the sailing_duration - if duration is not None: - sailing_duration = duration - else: - sailing_duration = self.sailing_duration( - self.geometry, destination, engine_order - ) + if duration is None: + duration = self.compute_duration(self.geometry, destination.geometry) # 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, ) + @property + def v(self): + """return the velocity * engine_order""" + return self._v * self.engine_order + @property def current_speed(self): + warnings.warn( + "The property `.current_speed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) return self.v - def sailing_duration(self, origin, destination, engine_order, verbose=True): - """Determine the sailing duration.""" - orig = shapely.geometry.shape(self.geometry) - dest = shapely.geometry.shape(destination.geometry) - _, _, distance = self.wgs84.inv(orig.x, orig.y, dest.x, dest.y) + @staticmethod + 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(origin) + dest = shapely.geometry.shape(destination) + _, _, distance = WGS84.inv(orig.x, orig.y, dest.x, dest.y) + return distance - return distance / (self.current_speed * engine_order) + 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) class ContainerDependentMovable(Movable, HasContainer): @@ -98,11 +147,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 current_speed(self): + warnings.warn( + "The property `.current_speed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) + return self.v + class MultiContainerDependentMovable(Movable, HasMultiContainer): """ @@ -126,7 +183,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 +191,94 @@ def current_speed(self): sum_capacity = self.container.get_capacity(id_) fill_degree = sum_level / sum_capacity return self.compute_v(fill_degree) + + +class Navigator: + @staticmethod + def find_route(waypoints): + # TODO: implement this method + 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) + """ + + # 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 = [] + + 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 = WGS84.geometry_length(linestring) + duration = self.v * distance + yield self.env.timeout(duration) + self.geometry = geometry + + 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(geometry) + # TODO: align with Movable (use compute_duration) + duration = self.v * distance + self.geometry = a + yield self.env.timeout(duration) + 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.""" + 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) + _, _, 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: + 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) + # 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: + # 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 diff --git a/src/openclsim/core/movable2.py b/src/openclsim/core/movable2.py new file mode 100644 index 00000000..9f404e1a --- /dev/null +++ b/src/openclsim/core/movable2.py @@ -0,0 +1,299 @@ +"""Component to move the simulation objects.""" +import itertools +import logging +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 +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 = itertools.tee(iterable) + next(b, None) + return zip(a, b) + + +logger = logging.getLogger(__name__) + +# we only have one earth, defined here. +WGS84 = pyproj.Geod(ellps="WGS84") + + +class Movable2(SimpyObject, Locatable): + """ + Movable class. + + Used for object that can move with a fixed speed + geometry: point used to track its current location + + Parameters + ---------- + v: speed (1d) + engine_order: factor that determines how much of the speed is used. + """ + + def __init__(self, v: float = 1, engine_order: float = 1, *args, **kwargs): + super().__init__(*args, **kwargs) + """""" + self._v = v + self.engine_order = 1.0 + + def move( + self, + destination: Locatable = None, + duration: float = None, + engine_order: float = 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") + + # 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, + self.activity_id, + LogState.START, + ) + + # Determine the sailing_duration + if duration is None: + 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) + self.geometry = shapely.geometry.shape(destination.geometry) + + # Log the stop event + self.log_entry_v1( + self.env.now, + self.activity_id, + LogState.STOP, + ) + + @property + def v(self): + """return the velocity * engine_order""" + return self._v * self.engine_order + + @property + def current_speed(self): + warnings.warn( + "The property `.current_speed` is deprected. Use `.v` instead.", + DeprecationWarning, + ) + return self.v + + @staticmethod + 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(origin) + dest = shapely.geometry.shape(destination) + _, _, 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 + ): + """Determine the duration based on great circle path from origin to destination.""" + distance = self.compute_distance(origin, destination) + return distance / (self.v * engine_order) + + +class ContainerDependentMovable2(Movable2, HasContainer): + """ + ContainerDependentMovable class. + + Used for objects that move with a speed dependent on the container level + + Parameters + ---------- + compute_v + a function that returns the current speed, given the fraction of the + the container that is filled (in [0,1]), e.g.: + lambda x: x * (v_full - v_empty) + v_empty + It can also be constant, e.g.: + lambda x: 10 + """ + + def __init__(self, compute_v_t, compute_v_s, *args, **kwargs): + """Init of the containerdependent moveable.""" + super().__init__(*args, **kwargs) + self.compute_v_t = compute_v_t + self.compute_v_s = compute_v_s + + @property + def v_t(self): + return self.compute_v_t( + self.container.get_level() / self.container.get_capacity() + ) + + def v_s(self): + return self.compute_v_s( + 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 MultiContainerDependentMovable2(Movable2, HasMultiContainer): + """ + MultiContainerDependentMovable class. + + Used for objects that move with a speed dependent on the container level. + This movable is provided with a MultiContainer, thus can handle a container + containing different objects. + compute_v + a function that returns the current speed, given the fraction of the + the container that is filled (in [0,1]), e.g.: + lambda x: x * (v_full - v_empty) + v_empty + It can also be constant, e.g.: + lambda x: 10 + """ + + def __init__(self, compute_v_t, compute_v_s, *args, **kwargs): + super().__init__(*args, **kwargs) + """Initialization""" + self.compute_v_t = compute_v_t + self.compute_v_s = compute_v_s + self.conainter_ids = self.container.container_list + + @property + def v_t(self): + sum_level = 0 + sum_capacity = 0 + for id_ in self.container.container_list: + sum_level = self.container.get_level(id_) + sum_capacity = self.container.get_capacity(id_) + fill_degree = sum_level / sum_capacity + return self.compute_v_t(fill_degree) + def v_s(self): + sum_level = 0 + sum_capacity = 0 + for id_ in self.container.container_list: + sum_level = self.container.get_level(id_) + sum_capacity = self.container.get_capacity(id_) + fill_degree = sum_level / sum_capacity + return self.compute_v_s(fill_degree) + + +class Navigator: + @staticmethod + def find_route(waypoints): + # TODO: implement this method + 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) + """ + + # 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 = [] + + 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 = WGS84.geometry_length(linestring) + duration = self.v * distance + yield self.env.timeout(duration) + self.geometry = geometry + + 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(geometry) + # TODO: align with Movable (use compute_duration) + duration = self.v * distance + self.geometry = a + yield self.env.timeout(duration) + 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.""" + 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) + _, _, 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: + 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) + # 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: + # 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 diff --git a/src/openclsim/core/priority.py b/src/openclsim/core/priority.py new file mode 100644 index 00000000..d1f2d01e --- /dev/null +++ b/src/openclsim/core/priority.py @@ -0,0 +1,59 @@ +from .identifiable import Identifiable +from .resource import HasResource +from .simpy_object import SimpyObject + + +class HasPriorityResource(HasResource): + def __init__(self, nr_resources=float("inf"), *arg, **kwarg): + super().__init__(*arg, **kwarg) + self.active_vessel = None + self.nr_resources = nr_resources + + def request(self, priority=0, *arg, **kwarg): + if self.active_vessel and priority > self.active_vessel.priority: + self.active_vessel.interrupt() + return super().request(priority=priority, *arg, **kwarg) + + def active_vessel(self, vessel): + self.active_vessel = vessel + + +class PriorityVessel(HasResource, Identifiable): + def __init__(self, name, env, priority, *arg, **kwarg): + super().__init__(env, name, *arg, **kwarg) + self.priority = priority + + def process_vessel(self, env, resource): + with resource.request(priority=self.priority) as request: + yield request + print( + f"{env.now:.1f}: Vessel {self.name} starts unloading at {self.destination}" + ) + yield env.timeout(1) # Unloading time + print( + f"{env.now:.1f}: Vessel {self.name} finishes unloading at {self.destination}" + ) + + +# def process_vessel(self, name, priority, vessel_type): +# with self.resources.request(priority=priority) as req: +# yield req + +# if vessel_type == "dredging": +# # Dredging vessels have priority +# print( +# f"Dredging vessel {name} entered the berth at time {self.env.now}" +# ) +# yield self.env.timeout(1) # Simulate dredging operation +# print( +# f"Dredging vessel {name} completed dredging at time {self.env.now}" +# ) +# else: +# # Seagoing vessels have priority +# print( +# f"Seagoing vessel {name} entered the berth at time {self.env.now}" +# ) +# yield self.env.timeout(5) # Simulate berthing and servicing time +# print( +# f"Seagoing vessel {name} completed service at the berth at time {self.env.now}" +# ) 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/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 5f2f5e0d..8ed1e3e4 100644 --- a/src/openclsim/model/__init__.py +++ b/src/openclsim/model/__init__.py @@ -9,6 +9,8 @@ from .shift_amount_activity import ShiftAmountActivity 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", @@ -24,4 +26,7 @@ "ShiftAmountActivity", "single_run_process", "WhileActivity", + "WhileAccessActivity", + "RepeatAccessActivity", + "ProduceAmountActivity", ] 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..42be99d4 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, @@ -105,7 +107,7 @@ def main_process_function(self, activity_log, env): duration=self.duration, ) - activity_log.log_entry( + activity_log.log_entry_v1( t=env.now, activity_id=activity_log.id, activity_state=core.LogState.STOP, @@ -118,3 +120,4 @@ def main_process_function(self, activity_log, env): self._release_resource( self.requested_resources, self.mover.resource, self.keep_resources ) + 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/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", + ) 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..f9cec682 100644 --- a/src/openclsim/model/shift_amount_activity.py +++ b/src/openclsim/model/shift_amount_activity.py @@ -68,7 +68,14 @@ def __init__( def main_process_function(self, activity_log, env): """Origin and Destination are of type HasContainer.""" - assert self.processor.is_at(self.origin) + # 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) yield from self._request_resource( @@ -138,7 +145,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 +158,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_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() diff --git a/src/openclsim/model/while_activity.py b/src/openclsim/model/while_activity.py index 0ae01946..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, @@ -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, diff --git a/src/openclsim/plugins/__init__.py b/src/openclsim/plugins/__init__.py index b46aa615..bce391a2 100644 --- a/src/openclsim/plugins/__init__.py +++ b/src/openclsim/plugins/__init__.py @@ -2,10 +2,23 @@ from .delay import DelayPlugin, HasDelayPlugin from .weather import HasWeatherPluginActivity, WeatherCriterion +from .depth import HasDepthPluginActivity, DepthCriterion +from .access import ( + HasDredgePluginActivity, + DredgeCriterion, + HasTidePluginActivity, + TideCriterion, +) __all__ = [ "HasWeatherPluginActivity", "WeatherCriterion", "HasDelayPlugin", "DelayPlugin", + "HasDepthPluginActivity", + "DepthPlugin", + "HasDredgePluginActivity", + "DredgeCriterion", + "HasTidePluginActivity", + "TideCriterion", ] diff --git a/src/openclsim/plugins/access.py b/src/openclsim/plugins/access.py new file mode 100644 index 00000000..b46ee53e --- /dev/null +++ b/src/openclsim/plugins/access.py @@ -0,0 +1,288 @@ +#!/usr/bin/env python3 + +"""Directory for the depth plugin.""" + +import numpy as np +import pandas as pd +import logging + +import openclsim.model + + +logger = logging.getLogger(__name__) + +def water_level(t, amplitude=1.5): + """simple tidal water level function for demo applications + + Parameters + ---------- + t : float + time in hours + """ + # t is in hours + tidal_phase = 0 + tidal_period = 12.42 + water_level_at_t = amplitude * np.sin(2 * np.pi * t / tidal_period - tidal_phase) + return water_level_at_t + + +def compute_tidal_windows(water_level, t_now, t_max, threshold): + """ + Compute tidal windows based on a water level function + + Parameters + ---------- + water_level : callable + a function that takes a time in hours and returns a water level + t_now : float + the current time (suggestion: env.now / 3600) + t_max : float + the maximum time window ahead to consider + threshold : float + the threshold for the water level + + """ + # timesteps in minutess + t = np.arange(t_now, t_now + t_max, 1 / 60) + # compute or lookup waterlevels for each minute + water_levels = water_level(t) + + # find all roots where water level changes over our threshold + tidal_switch_idx = np.diff(water_level(t) > threshold) + print("switch", tidal_switch_idx) + if not np.any(tidal_switch_idx): + # no tidal windows found, let's use the whole window + selected_t = [t[-1]] + selected_water_level = [water_levels[-1]] + else: + + # these are all the roots of our water level function + selected_t = (t[:-1][tidal_switch_idx] + t[1:][tidal_switch_idx]) / 2 + selected_water_level = (water_levels[:-1][tidal_switch_idx] + water_levels[1:][tidal_switch_idx]) / 2 + + # lets' evaluate all tidal windows + # we could optimize by stopping once we found a valid tidal window + pairs = [] + pairs.append((t_now, selected_t[0])) + for a, b in zip(selected_t[:-1], selected_t[1:]): + pair = (a, b) + pairs.append(pair) + + + rows = [] + for pair in pairs: + t0, t1 = pair + t_middle = (pair[0] + pair[1]) / 2 + water_level_middle = water_level(t_middle) + water_level_t0 = water_level(t0) + water_level_t1 = water_level(t1) + tide_allows = water_level_middle > threshold + row = {} + row['tide_allows'] = tide_allows + row['t0'] = t0 + row['t1'] = t1 + row['t_middle'] = t_middle + row['water_level_middle'] = water_level_middle + row['water_level_t0'] = water_level_t0 + row['water_level_t1'] = water_level_t1 + rows.append(row) + + tidal_windows_df = pd.DataFrame(rows) + tidal_windows_df + return tidal_windows_df + + +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 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.""" + + def __init__(self, dredge_criteria, destination, *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("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 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: + print("we are going to dredge") + return True + else: + 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 + + +class TidePluginActivity(openclsim.model.AbstractPluginClass): + """Mixin for ShiftAmountActivity to initialize ShiftAmountActivity.""" + + def __init__( + self, + tide_criteria, + destination, + mover, + actual_water_level=None, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + + assert isinstance(tide_criteria, TideCriterion) + self.tide_criteria = tide_criteria + self.destination = destination + self.mover = mover + self.actual_water_level = actual_water_level + + 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(env) + print(f"waiting for {waiting} seconds") + print("activity log", activity_log) + 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_tide_allows(self, env): + """compute how long until next tidal window opportunity""" + t_now = env.now / 3600 # current time in hours + t_max = 12.42 * 4 # 4 tidal periods ahead + # the needed available water level at our destination + threshold = self.destination.ABL + self.mover.UKC + self.mover.T + print( + "threshold", threshold, + "ABL", self.destination.ABL, + "UKC", self.mover.UKC, + "T", self.mover.T + ) + + + tidal_windows_df = compute_tidal_windows(openclsim.plugins.access.water_level, t_now, t_max, threshold) + selected_windows = tidal_windows_df[tidal_windows_df.tide_allows] + selected_window = selected_windows.iloc[0] + time_to_start_sailing = (selected_window.t0 * 3600) + delay = time_to_start_sailing - env.now + return delay + + def process_data(self, criterion) -> dict: + result: dict = {} + return result + + +class HasDredgePluginActivity(openclsim.model.MoveActivity): + """Mixin for Activity to initialize DredgePluginActivity.""" + + 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 + ) + self.register_plugin(plugin=dredge_plugin, priority=2) + + +class HasTidePluginActivity(openclsim.model.MoveActivity): + """Mixin for Activity to initialize TidePluginActivity.""" + + def __init__(self, tide_criteria, *args, **kwargs): + super().__init__(*args, **kwargs) + assert hasattr(self, "destination"), f"{self} should have a destination" + destination = self.destination + assert hasattr(self, "mover"), f"{self} should have a mover" + mover = self.mover + + if tide_criteria is not None and isinstance( + self, openclsim.model.PluginActivity + ): + tide_plugin = TidePluginActivity(tide_criteria=tide_criteria, destination=destination, mover=mover) + self.register_plugin(plugin=tide_plugin, priority=2) 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 diff --git a/tests/test_basic_functions.py b/tests/test_basic_functions.py index d3eb964c..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) @@ -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)