Analyses

Analyses are run after ContainerFlowGenerationManager.generate(). An analyses provides first insights on the actually generated data. They help to answer questions such as:

  1. Was the correct input data used? Especially with a lot of input data, it might be tough to keep track of schedules and distributions. Before using the generated data, cross-check the generated data with your input data. Are the schedules honoured? Do the empirical distributions in the generated data match your assumed distributions?

  2. Do the initial assumptions match? It is tricky to assign containers to the vehicles on their outbound journey while adhering to distributions and operational constraints at the same time. It is worthwhile comparing an analysis with its corresponding preview counterpart (if existent) to detect deviations between the two. If they deviate largely and against your personal expectations, maybe the operational constraints need readjustment.

  3. Does the generated data correspond to your expectations? Probably you used some of the default distributions and some you researched yourself. You might want to cross-check the generated data with external data sources. Only that way you can ensure that the data is plausible for the problem you wish to further investigate.

Please be aware that, as stated in the license, ConFlowGen comes without any warranty. These analyses are only a first step, so please add your own analyses of the data. It is up to you to ensure that the generated data actually fits to your task at hand (such as, e.g. a simulation study).

The steps are explained according to the database created by the demo script serving as a Proof of Concept, but you can still use any other ConFlowGen database.

[1]:
import matplotlib.pyplot as plt
from IPython.display import Markdown, display

import conflowgen

database_chooser = conflowgen.DatabaseChooser(
    sqlite_databases_directory="./data/prepared_dbs"  # subdirectory relative to Jupyter Notebook
)
database_chooser.load_existing_sqlite_database("demo_poc.sqlite")
[2]:
preferred_matplotlib_style = "seaborn-v0_8-colorblind"

Instantiating an Analysis

Each analysis is a standardized approach of how the data present in the database is digested. The resulting objects are part of the API but it requires some programming to further work with them.

[3]:
inbound_and_outbound_vehicle_capacity_analysis = (
    conflowgen.InboundAndOutboundVehicleCapacityAnalysis(transportation_buffer=0.2)
)
display(
    inbound_and_outbound_vehicle_capacity_analysis.get_inbound_container_volumes_by_vehicle_type()
)
outbound_capacities = (
    inbound_and_outbound_vehicle_capacity_analysis.get_outbound_container_volume_by_vehicle_type()
)
display(outbound_capacities.used.teu)
display(outbound_capacities.maximum.teu)
ContainerVolumeByVehicleType(teu={<ModeOfTransport.truck: 'truck'>: 381.5, <ModeOfTransport.train: 'train'>: 264.75, <ModeOfTransport.feeder: 'feeder'>: 295.0, <ModeOfTransport.deep_sea_vessel: 'deep_sea_vessel'>: 593.75, <ModeOfTransport.barge: 'barge'>: 0}, containers={<ModeOfTransport.truck: 'truck'>: 237, <ModeOfTransport.train: 'train'>: 166, <ModeOfTransport.feeder: 'feeder'>: 181, <ModeOfTransport.deep_sea_vessel: 'deep_sea_vessel'>: 364, <ModeOfTransport.barge: 'barge'>: 0})
{<ModeOfTransport.truck: 'truck'>: 385.0,
 <ModeOfTransport.train: 'train'>: 176.0,
 <ModeOfTransport.feeder: 'feeder'>: 328.75,
 <ModeOfTransport.deep_sea_vessel: 'deep_sea_vessel'>: 645.25,
 <ModeOfTransport.barge: 'barge'>: 0}
{<ModeOfTransport.truck: 'truck'>: nan,
 <ModeOfTransport.train: 'train'>: 270,
 <ModeOfTransport.feeder: 'feeder'>: 360,
 <ModeOfTransport.deep_sea_vessel: 'deep_sea_vessel'>: 720,
 <ModeOfTransport.barge: 'barge'>: 0}

Instantiating an Analysis Report

The data structures returned by an analysis are further digestible by code. If you, however, prefer to have the data in a format better to read, you might rather look for the report. For every analysis, a corresponding report exists. It auto-fills the parameters for the analysis with the data already stored in the database. Thus, we do not need to provide a transportation_buffer.

[4]:
analysis_report = conflowgen.InboundAndOutboundVehicleCapacityAnalysisReport()
print(analysis_report.get_report_as_text())

(all numbers are reported in TEU)
vehicle type      inbound volume      outbound volume     outbound max capacity
deep sea vessel            593.8                645.2                     720.0
feeder                     295.0                328.8                     360.0
barge                        0.0                  0.0                       0.0
train                      264.8                176.0                     270.0
truck                      381.5                385.0                      -1.0
(rounding errors might exist)

Instead of reading tables, one might prefer to see the data visualized. Occasionally, the visualization and text of some reports will be slightly different, but here they complement each other well.

[5]:
analysis_report.show_report_as_graph()
../_images/notebooks_analyses_8_0.svg

For more information on this preview report, please check InboundAndOutboundVehicleCapacityAnalysisReport. A list of all analyses including their corresponding reports shipped with ConFlowGen is available at Running analyses.

Showing Analyses as Text

Following the approach sketched out above, you could generate every analysis report you are interested in. If you are interested in all of them, a convenience function exists. It can simply print all information to the standard output.

[6]:
conflowgen.run_all_analyses(
    as_text=True,
    display_text_func=print,
)
Run all analyses on the synthetically generated data.

Inbound And Outbound Vehicle Capacity Analysis Report

Analyze the container volumes transported by vehicle type for the inbound and
outbound journeys and check for the maximum capacity of each vehicle type on its
outbound journey. If, e.g., for the vehicle type 'feeder' the maximum capacity
is reached, most likely there are more vehicles that deliver containers destined
for feeders but could not get a free spot. You might consider adding more
vehicles of that type or adjusting the modal split.

(all numbers are reported in TEU)
vehicle type      inbound volume      outbound volume     outbound max capacity
deep sea vessel            593.8                645.2                     720.0
feeder                     295.0                328.8                     360.0
barge                        0.0                  0.0                       0.0
train                      264.8                176.0                     270.0
truck                      381.5                385.0                      -1.0
(rounding errors might exist)


Container Flow By Vehicle Type Analysis Report

Analyze how many containers were delivered by which vehicle type and how their
journey continued. The analysis pairs the inbound and outbound journey for each
container.

vehicle type (from) vehicle type (to) transported capacity (in TEU)
deep sea vessel     deep sea vessel                             0.0
deep sea vessel     feeder                                    127.0
deep sea vessel     barge                                       0.0
deep sea vessel     train                                     145.0
deep sea vessel     truck                                     321.8
feeder              deep sea vessel                           200.8
feeder              feeder                                      0.0
feeder              barge                                       0.0
feeder              train                                      31.0
feeder              truck                                      63.2
barge               deep sea vessel                             0.0
barge               feeder                                      0.0
barge               barge                                       0.0
barge               train                                       0.0
barge               truck                                       0.0
train               deep sea vessel                           176.2
train               feeder                                     88.5
train               barge                                       0.0
train               train                                       0.0
train               truck                                       0.0
truck               deep sea vessel                           268.2
truck               feeder                                    113.2
truck               barge                                       0.0
truck               train                                       0.0
truck               truck                                       0.0
(rounding errors might exist)


vehicle type (from) vehicle type (to) transported capacity (in containers)
deep sea vessel     deep sea vessel                             0.0
deep sea vessel     feeder                                     75.0
deep sea vessel     barge                                       0.0
deep sea vessel     train                                      89.0
deep sea vessel     truck                                     200.0
feeder              deep sea vessel                           126.0
feeder              feeder                                      0.0
feeder              barge                                       0.0
feeder              train                                      18.0
feeder              truck                                      37.0
barge               deep sea vessel                             0.0
barge               feeder                                      0.0
barge               barge                                       0.0
barge               train                                       0.0
barge               truck                                       0.0
train               deep sea vessel                           109.0
train               feeder                                     57.0
train               barge                                       0.0
train               train                                       0.0
train               truck                                       0.0
truck               deep sea vessel                           168.0
truck               feeder                                     69.0
truck               barge                                       0.0
truck               train                                       0.0
truck               truck                                       0.0
(rounding errors might exist)


Container Flow Adjustment By Vehicle Type Analysis Report

Analyze how many containers needed to change their initial container type. When
containers are generated, in order to obey the maximum dwell time, the vehicle
type that is used for onward transportation might change. The initial outbound
vehicle type is the vehicle type that is drawn randomly for a container at the
time of generation. The adjusted vehicle type is the vehicle type that is drawn
in case no vehicle of the initial outbound vehicle type is left within the
maximum dwell time.

initial vehicle type  adjusted vehicle type  transported capacity (in TEU) transported capacity (in boxes)
deep sea vessel       deep sea vessel                                635.2                             396
deep sea vessel       feeder                                           6.0                               4
deep sea vessel       barge                                            0.0                               0
deep sea vessel       train                                            0.0                               0
deep sea vessel       truck                                           12.2                               7
feeder                deep sea vessel                                  0.0                               0
feeder                feeder                                         322.8                             197
feeder                barge                                            0.0                               0
feeder                train                                            0.0                               0
feeder                truck                                           43.0                              26
barge                 deep sea vessel                                  0.0                               0
barge                 feeder                                           0.0                               0
barge                 barge                                            0.0                               0
barge                 train                                            0.0                               0
barge                 truck                                            0.0                               0
train                 deep sea vessel                                 10.0                               7
train                 feeder                                           0.0                               0
train                 barge                                            0.0                               0
train                 train                                          176.0                             107
train                 truck                                           50.2                              33
truck                 deep sea vessel                                  0.0                               0
truck                 feeder                                           0.0                               0
truck                 barge                                            0.0                               0
truck                 train                                            0.0                               0
truck                 truck                                          279.5                             171
(rounding errors might exist)


Container Flow Adjustment By Vehicle Type Analysis Summary Report

Analyse whether a container needed to change its vehicle type for the outbound
journey and if that was the case, how many times which vehicle type was chosen
in order to not exceed the maximum dwell time.

                                    Capacity in TEU
vehicle type unchanged:          1413.5 (92.08%)
changed to deep sea vessel:        10.0 (0.65%)
changed to feeder:                  6.0 (0.39%)
changed to barge:                   0.0 (0.00%)
changed to train:                   0.0 (0.00%)
changed to truck:                 105.5 (6.87%)
(rounding errors might exist)


Container Flow Vehicle Type Adjustment Per Vehicle Analysis Report

Analyze how many of the containers loaded by a vehicle on its outbound journey
have been originally destined for another vehicle type. Generally, it expected
that such an adjustment should only occur occasionally in the beginning. Only
towards the end, difficulties to find the desired vehicle type are expected,
e.g., if a feeder delivers a container to be transshipped to a deep sea vessel
but the last deep sea vessel has already departed, then the container must be
placed on a vehicle of another type. If no vehicle is available, a corresponding
truck is created to pick up the container from the terminal.  A large fraction
of re-assigned containers before the end are considered noteworthy but depending
on the input data it might be acceptable.

initial vehicle type = scheduled vehicles
adjusted vehicle type = scheduled vehicles
start date = none
end date = none
vehicle identifier                                 fraction of adjusted containers (in containers)
train-JR03A-2                                      0.0%
deep_sea_vessel-LX050-3                            0.0%
train-JR03A-3                                      0.0%
deep_sea_vessel-LX050-4                            6.2%
feeder-LX050-2                                     0.0%
deep_sea_vessel-LX050-2                            0.0%
feeder-LX050-3                                     5.9%
feeder-LX050-1                                     0.0%
train-JR03A-1                                      0.0%
deep_sea_vessel-LX050-1                            0.0%
(rounding errors might exist)


Modal Split Analysis Report

Analyze the amount of containers dedicated for or coming from the hinterland
compared to the amount of containers that are transshipment.

Role in network
transshipment traffic (in TEU):      327.75 (21.35%)
inland gateway traffic (in TEU):    1207.25 (78.65%)

Modal split in hinterland traffic (only inbound traffic)
trucks (in TEU):      381.5 (59.03%)
barges (in TEU):        0.0 (0.00%)
trains (in TEU):      264.8 (40.97%)

Modal split in hinterland traffic (only outbound traffic)
trucks (in TEU):      385.0 (68.63%)
barges (in TEU):        0.0 (0.00%)
trains (in TEU):      176.0 (31.37%)

Modal split in hinterland traffic (both inbound and outbound traffic)
trucks (in TEU):      766.5 (63.49%)
barges (in TEU):        0.0 (0.00%)
trains (in TEU):      440.8 (36.51%)
(rounding errors might exist)


Container Dwell Time Analysis Report

Analyse the container dwell times. In the text version of the report, only the
statistics are reported. In the visual version of the report, the dwell time
distributions are plotted.

container is delivered by vehicle type = all
container picked up by vehicle type = all
storage requirement = all
number containers:                                 490
                                       (reported in h)
minimum container dwell time:                     20.0
average container dwell time:                    130.2
maximum container dwell time:                    748.0
standard deviation:                              108.6
(rounding errors might exist)


Quay Side Throughput Analysis Report

Analyse the throughput at the quay side. In the text version of the report, only
the statistics are reported. In the visual version of the report, the time
series is plotted. There is no concept of handling times in the data generation
process (as this is the task of the simulation or optimization model using this
data on a later stage) and thus all containers are loaded and discharged at
once. The impact of this fact is mitigated by averaging the data over certain
time ranges.

                                     (reported in boxes)
maximum weekly quay side throughput:                 335
average weekly quay side throughput:               191.5
standard deviation:                                159.8
maximum daily quay side throughput:                 47.9
average daily quay side throughput:                 27.4
maximum hourly quay side throughput:                 2.0
average hourly quay side throughput:                 1.1
(daily and hourly values are simply scaled weekly values, rounding errors might exist)


Truck Gate Throughput Analysis Report

Analyze the trucks entering through the truck gate at each hour. Based on this,
the required truck gate capacity in containers boxes can be deduced. In the text
version of the report, only the statistics are reported. In the visual version
of the report, the time series is plotted.

                                     (reported in boxes)
maximum hourly truck gate throughput:                  8
average hourly truck gate throughput:                0.3
standard deviation:                                  0.8
(rounding errors might exist)


Yard Capacity Analysis Report

Analyse the used capacity in the yard. For each hour, the containers entering
and leaving the yard are checked. Based on this, the required yard capacity in
TEU can be deduced. In the text version of the report, only the statistics are
reported. In the visual version of the report, the time series is plotted. There
is no concept of handling times in the data generation process (as this is the
task of the simulation or optimization model using this data on a later stage)
and thus all containers are loaded and discharged at once. Thus, the yard
utilization shows certain peaks that will most likely not occur, especially if
the discharging and loading process of a vessel is parallelized.

storage requirement = all
                                     (reported in TEU)
maximum used yard capacity:                      346.2
average used yard capacity:                      115.8
standard deviation:                              126.6
(rounding errors might exist)


Inbound To Outbound Vehicle Capacity Utilization Analysis Report

Analyze the used vehicle capacity for each vehicle for the inbound and outbound
journeys. Generally, it expected to reach an equilibrium - each vehicle should
approximately pick up as many containers at the container terminal as it has
delivered. Great disparities between the transported capacities on the inbound
and outbound journey are considered noteworthy but depending on the input data
it might be acceptable. Trucks are excluded from this analysis.

vehicle type = scheduled vehicles
start date = none
end date = none
vehicle identifier                                 inbound volume (in TEU) outbound volume (in TEU)
feeder-LX050-1                                                       100.0                    110.8
feeder-LX050-2                                                       100.0                    105.8
feeder-LX050-3                                                       100.0                    112.2
train-JR03A-1                                                         90.0                     46.0
train-JR03A-2                                                         90.0                     48.0
train-JR03A-3                                                         90.0                     82.0
deep_sea_vessel-LX050-1                                              150.0                    135.2
deep_sea_vessel-LX050-2                                              150.0                    157.0
deep_sea_vessel-LX050-3                                              150.0                    173.8
deep_sea_vessel-LX050-4                                              150.0                    179.2
(rounding errors might exist)

All analyses have been run.

Displaying Analyses as Graphs

Analyses can also be displayed as graphs. The depicted information contains the same information but might be easier to grasp. For emphasis, in the following the text version and graph version of the report are presented side-by-side. In addition, we also use the Markdown capabilities of the convenience function. This makes the presented analyses blend into the remaining content.

[7]:
conflowgen.run_all_analyses(
    as_text=True,
    as_graph=True,
    display_text_func=lambda text: display(Markdown(text)),
    display_in_markup_language="markdown",
    display_as_ipython_svg=True,
)

Run all analyses on the synthetically generated data.

Inbound And Outbound Vehicle Capacity Analysis Report

Analyze the container volumes transported by vehicle type for the inbound and outbound journeys and check for the maximum capacity of each vehicle type on its outbound journey. If, e.g., for the vehicle type ‘feeder’ the maximum capacity is reached, most likely there are more vehicles that deliver containers destined for feeders but could not get a free spot. You might consider adding more vehicles of that type or adjusting the modal split.

(all numbers are reported in TEU)
vehicle type      inbound volume      outbound volume     outbound max capacity
deep sea vessel            593.8                645.2                     720.0
feeder                     295.0                328.8                     360.0
barge                        0.0                  0.0                       0.0
train                      264.8                176.0                     270.0
truck                      381.5                385.0                      -1.0
(rounding errors might exist)
../_images/notebooks_analyses_13_4.svg

Container Flow By Vehicle Type Analysis Report

Analyze how many containers were delivered by which vehicle type and how their journey continued. The analysis pairs the inbound and outbound journey for each container.

vehicle type (from) vehicle type (to) transported capacity (in TEU)
deep sea vessel     deep sea vessel                             0.0
deep sea vessel     feeder                                    127.0
deep sea vessel     barge                                       0.0
deep sea vessel     train                                     145.0
deep sea vessel     truck                                     321.8
feeder              deep sea vessel                           200.8
feeder              feeder                                      0.0
feeder              barge                                       0.0
feeder              train                                      31.0
feeder              truck                                      63.2
barge               deep sea vessel                             0.0
barge               feeder                                      0.0
barge               barge                                       0.0
barge               train                                       0.0
barge               truck                                       0.0
train               deep sea vessel                           176.2
train               feeder                                     88.5
train               barge                                       0.0
train               train                                       0.0
train               truck                                       0.0
truck               deep sea vessel                           268.2
truck               feeder                                    113.2
truck               barge                                       0.0
truck               train                                       0.0
truck               truck                                       0.0
(rounding errors might exist)


vehicle type (from) vehicle type (to) transported capacity (in containers)
deep sea vessel     deep sea vessel                             0.0
deep sea vessel     feeder                                     75.0
deep sea vessel     barge                                       0.0
deep sea vessel     train                                      89.0
deep sea vessel     truck                                     200.0
feeder              deep sea vessel                           126.0
feeder              feeder                                      0.0
feeder              barge                                       0.0
feeder              train                                      18.0
feeder              truck                                      37.0
barge               deep sea vessel                             0.0
barge               feeder                                      0.0
barge               barge                                       0.0
barge               train                                       0.0
barge               truck                                       0.0
train               deep sea vessel                           109.0
train               feeder                                     57.0
train               barge                                       0.0
train               train                                       0.0
train               truck                                       0.0
truck               deep sea vessel                           168.0
truck               feeder                                     69.0
truck               barge                                       0.0
truck               train                                       0.0
truck               truck                                       0.0
(rounding errors might exist)
../_images/notebooks_analyses_13_8.svg
../_images/notebooks_analyses_13_9.svg

Container Flow Adjustment By Vehicle Type Analysis Report

Analyze how many containers needed to change their initial container type. When containers are generated, in order to obey the maximum dwell time, the vehicle type that is used for onward transportation might change. The initial outbound vehicle type is the vehicle type that is drawn randomly for a container at the time of generation. The adjusted vehicle type is the vehicle type that is drawn in case no vehicle of the initial outbound vehicle type is left within the maximum dwell time.

initial vehicle type  adjusted vehicle type  transported capacity (in TEU) transported capacity (in boxes)
deep sea vessel       deep sea vessel                                635.2                             396
deep sea vessel       feeder                                           6.0                               4
deep sea vessel       barge                                            0.0                               0
deep sea vessel       train                                            0.0                               0
deep sea vessel       truck                                           12.2                               7
feeder                deep sea vessel                                  0.0                               0
feeder                feeder                                         322.8                             197
feeder                barge                                            0.0                               0
feeder                train                                            0.0                               0
feeder                truck                                           43.0                              26
barge                 deep sea vessel                                  0.0                               0
barge                 feeder                                           0.0                               0
barge                 barge                                            0.0                               0
barge                 train                                            0.0                               0
barge                 truck                                            0.0                               0
train                 deep sea vessel                                 10.0                               7
train                 feeder                                           0.0                               0
train                 barge                                            0.0                               0
train                 train                                          176.0                             107
train                 truck                                           50.2                              33
truck                 deep sea vessel                                  0.0                               0
truck                 feeder                                           0.0                               0
truck                 barge                                            0.0                               0
truck                 train                                            0.0                               0
truck                 truck                                          279.5                             171
(rounding errors might exist)
../_images/notebooks_analyses_13_13.svg

Container Flow Adjustment By Vehicle Type Analysis Summary Report

Analyse whether a container needed to change its vehicle type for the outbound journey and if that was the case, how many times which vehicle type was chosen in order to not exceed the maximum dwell time.

                                    Capacity in TEU
vehicle type unchanged:          1413.5 (92.08%)
changed to deep sea vessel:        10.0 (0.65%)
changed to feeder:                  6.0 (0.39%)
changed to barge:                   0.0 (0.00%)
changed to train:                   0.0 (0.00%)
changed to truck:                 105.5 (6.87%)
(rounding errors might exist)
../_images/notebooks_analyses_13_17.svg

Container Flow Vehicle Type Adjustment Per Vehicle Analysis Report

Analyze how many of the containers loaded by a vehicle on its outbound journey have been originally destined for another vehicle type. Generally, it expected that such an adjustment should only occur occasionally in the beginning. Only towards the end, difficulties to find the desired vehicle type are expected, e.g., if a feeder delivers a container to be transshipped to a deep sea vessel but the last deep sea vessel has already departed, then the container must be placed on a vehicle of another type. If no vehicle is available, a corresponding truck is created to pick up the container from the terminal.

A large fraction of re-assigned containers before the end are considered noteworthy but depending on the input data it might be acceptable.

initial vehicle type = scheduled vehicles
adjusted vehicle type = scheduled vehicles
start date = none
end date = none
vehicle identifier                                 fraction of adjusted containers (in containers)
train-JR03A-2                                      0.0%
deep_sea_vessel-LX050-3                            0.0%
train-JR03A-3                                      0.0%
deep_sea_vessel-LX050-4                            6.2%
feeder-LX050-2                                     0.0%
deep_sea_vessel-LX050-2                            0.0%
feeder-LX050-3                                     5.9%
feeder-LX050-1                                     0.0%
train-JR03A-1                                      0.0%
deep_sea_vessel-LX050-1                            0.0%
(rounding errors might exist)
../_images/notebooks_analyses_13_21.svg

Analyze the amount of containers dedicated for or coming from the hinterland compared to the amount of containers that are transshipment.

Role in network
transshipment traffic (in TEU):      327.75 (21.35%)
inland gateway traffic (in TEU):    1207.25 (78.65%)

Modal split in hinterland traffic (only inbound traffic)
trucks (in TEU):      381.5 (59.03%)
barges (in TEU):        0.0 (0.00%)
trains (in TEU):      264.8 (40.97%)

Modal split in hinterland traffic (only outbound traffic)
trucks (in TEU):      385.0 (68.63%)
barges (in TEU):        0.0 (0.00%)
trains (in TEU):      176.0 (31.37%)

Modal split in hinterland traffic (both inbound and outbound traffic)
trucks (in TEU):      766.5 (63.49%)
barges (in TEU):        0.0 (0.00%)
trains (in TEU):      440.8 (36.51%)
(rounding errors might exist)
../_images/notebooks_analyses_13_25.svg

Container Dwell Time Analysis Report

Analyse the container dwell times. In the text version of the report, only the statistics are reported. In the visual version of the report, the dwell time distributions are plotted.

container is delivered by vehicle type = all
container picked up by vehicle type = all
storage requirement = all
number containers:                                 490
                                       (reported in h)
minimum container dwell time:                     20.0
average container dwell time:                    130.2
maximum container dwell time:                    748.0
standard deviation:                              108.6
(rounding errors might exist)
../_images/notebooks_analyses_13_29.svg

Quay Side Throughput Analysis Report

Analyse the throughput at the quay side. In the text version of the report, only the statistics are reported. In the visual version of the report, the time series is plotted. There is no concept of handling times in the data generation process (as this is the task of the simulation or optimization model using this data on a later stage) and thus all containers are loaded and discharged at once. The impact of this fact is mitigated by averaging the data over certain time ranges.

                                     (reported in boxes)
maximum weekly quay side throughput:                 335
average weekly quay side throughput:               191.5
standard deviation:                                159.8
maximum daily quay side throughput:                 47.9
average daily quay side throughput:                 27.4
maximum hourly quay side throughput:                 2.0
average hourly quay side throughput:                 1.1
(daily and hourly values are simply scaled weekly values, rounding errors might exist)
../_images/notebooks_analyses_13_33.svg

Truck Gate Throughput Analysis Report

Analyze the trucks entering through the truck gate at each hour. Based on this, the required truck gate capacity in containers boxes can be deduced. In the text version of the report, only the statistics are reported. In the visual version of the report, the time series is plotted.

                                     (reported in boxes)
maximum hourly truck gate throughput:                  8
average hourly truck gate throughput:                0.3
standard deviation:                                  0.8
(rounding errors might exist)
../_images/notebooks_analyses_13_37.svg

Yard Capacity Analysis Report

Analyse the used capacity in the yard. For each hour, the containers entering and leaving the yard are checked. Based on this, the required yard capacity in TEU can be deduced. In the text version of the report, only the statistics are reported. In the visual version of the report, the time series is plotted. There is no concept of handling times in the data generation process (as this is the task of the simulation or optimization model using this data on a later stage) and thus all containers are loaded and discharged at once. Thus, the yard utilization shows certain peaks that will most likely not occur, especially if the discharging and loading process of a vessel is parallelized.

storage requirement = all
                                     (reported in TEU)
maximum used yard capacity:                      346.2
average used yard capacity:                      115.8
standard deviation:                              126.6
(rounding errors might exist)
../_images/notebooks_analyses_13_41.svg

Inbound To Outbound Vehicle Capacity Utilization Analysis Report

Analyze the used vehicle capacity for each vehicle for the inbound and outbound journeys. Generally, it expected to reach an equilibrium - each vehicle should approximately pick up as many containers at the container terminal as it has delivered. Great disparities between the transported capacities on the inbound and outbound journey are considered noteworthy but depending on the input data it might be acceptable. Trucks are excluded from this analysis.

vehicle type = scheduled vehicles
start date = none
end date = none
vehicle identifier                                 inbound volume (in TEU) outbound volume (in TEU)
feeder-LX050-1                                                       100.0                    110.8
feeder-LX050-2                                                       100.0                    105.8
feeder-LX050-3                                                       100.0                    112.2
train-JR03A-1                                                         90.0                     46.0
train-JR03A-2                                                         90.0                     48.0
train-JR03A-3                                                         90.0                     82.0
deep_sea_vessel-LX050-1                                              150.0                    135.2
deep_sea_vessel-LX050-2                                              150.0                    157.0
deep_sea_vessel-LX050-3                                              150.0                    173.8
deep_sea_vessel-LX050-4                                              150.0                    179.2
(rounding errors might exist)
../_images/notebooks_analyses_13_45.svg

All analyses have been run.

Restricting Analyses

Some analyses can be restricted to a certain subset of the containers. These are not all covered by the convenience functions.

Here, only the used yard capacity for reefers is shown.

[8]:
yard_capacity_analysis_report = conflowgen.YardCapacityAnalysisReport()

with plt.style.context(preferred_matplotlib_style):
    yard_capacity_analysis_report.get_report_as_graph(
        storage_requirement=conflowgen.StorageRequirement.reefer
    )
    plt.show()
../_images/notebooks_analyses_16_0.svg

Here, the used yard capacity for standard containers and dangerous goods containers is shown.

[9]:
with plt.style.context(preferred_matplotlib_style):
    yard_capacity_analysis_report.get_report_as_graph(
        storage_requirement=[
            conflowgen.StorageRequirement.standard,
            conflowgen.StorageRequirement.dangerous_goods,
        ]
    )
    plt.show()
../_images/notebooks_analyses_18_0.svg

This of course also works for the text reports:

[10]:
vehicle_capacity_utilization_report = (
    conflowgen.InboundToOutboundVehicleCapacityUtilizationAnalysisReport()
)

print(
    vehicle_capacity_utilization_report.get_report_as_text(
        vehicle_type={
            conflowgen.ModeOfTransport.deep_sea_vessel,
            conflowgen.ModeOfTransport.feeder,
        }
    )
)

vehicle type = deep_sea_vessel & feeder
start date = none
end date = none
vehicle identifier                                 inbound volume (in TEU) outbound volume (in TEU)
feeder-LX050-1                                                       100.0                    110.8
feeder-LX050-2                                                       100.0                    105.8
feeder-LX050-3                                                       100.0                    112.2
deep_sea_vessel-LX050-1                                              150.0                    135.2
deep_sea_vessel-LX050-2                                              150.0                    157.0
deep_sea_vessel-LX050-3                                              150.0                    173.8
deep_sea_vessel-LX050-4                                              150.0                    179.2
(rounding errors might exist)

In some cases, even several filters can be combined.

[11]:
container_dwell_time_report = conflowgen.ContainerDwellTimeAnalysisReport()

with plt.style.context(preferred_matplotlib_style):
    container_dwell_time_report.get_report_as_graph(
        container_delivered_by_vehicle_type={
            conflowgen.ModeOfTransport.deep_sea_vessel,
            conflowgen.ModeOfTransport.feeder,
        },
        storage_requirement=conflowgen.StorageRequirement.empty,
    )
    plt.show()
../_images/notebooks_analyses_22_0.svg

The same pattern of restricting the output to certain vehicle or container types is usable for other analyses in case you spot the corresponding keyword arguments in Running analyses.

Formulating Your Own Analyses

An analysis is a description of what the output actually looks like. Some analyses are already shipped with ConFlowGen and more are planned in the future. If you have an idea for an analysis that might be worth sharing, please have a look at Contributing. In addition, it might be good to cross-check the output data separately. This can be done with spreadsheet calculations or programmatically with e.g. pandas An example for that you can find in the repository.