blob: eabb2065d55fd6378736440d4f1e7c2ef7efb8d8 [file] [log] [blame]
<!DOCTYPE html><html lang="en-us" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="generator" content="Source Themes Academic 4.8.0">
<meta name="author" content="Fraunhofer FOKUS">
<meta name="description" content="The Statistics Visualizer is only available with a commercial license of MOSAIC Extended. For further information on licences, please refer to our mailing list. The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.">
<link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/visualization/statistics/">
<meta name="theme-color" content="#68145C">
<script src="/mosaic/js/mathjax-config.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.8.6/css/academicons.min.css" integrity="sha512-MCWBwPSput2UWNwyznVFLbD2iUc1e5VsdD1zahsWVzkDSUzyHhMZ4kCS3wgYSRm0mU+glwD/Q9lSJrDPwbUL2A==" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-1/css/all.min.css" integrity="sha512-ZYg+hQvLlM0W9C3P6vTpes5LmJ66G2EsroxDNzwD6qiulckldb29eD9I672HL2X+LH5nRhY1sQqZLJGB+aUUPg==" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha512-H9jrZiiopUdsLpg94A333EfumgUBpO9MdbxStdeITo+KEIMaNfHNvwyjjDJb+ERPaRS6DpyRlKbvPUasNItRyw==" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-light">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-dark" disabled>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js" integrity="sha512-TmDwFLhg3UA4ZG0Eb4MIyT1O1Mb+Oww5kFG0uHqXsdbyZz9DcvYQhKpGgNkamAI6h2lGGZq2X8ftOJvF/XjTUg==" crossorigin="anonymous" async></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js" integrity="" crossorigin="anonymous" async></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,400i,700,700i%7CRoboto+Mono&display=swap">
<link rel="stylesheet" href="/mosaic/css/academic.css">
<link rel="manifest" href="/mosaic/index.webmanifest">
<link rel="icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_32x32_fill_lanczos_center_2.png">
<link rel="apple-touch-icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_192x192_fill_lanczos_center_2.png">
<link rel="canonical" href="https://www.eclipse.org/mosaic/docs/visualization/statistics/">
<meta property="twitter:card" content="summary">
<meta property="og:site_name" content="Eclipse MOSAIC">
<meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/statistics/">
<meta property="og:title" content="Statistics Visualizer | Eclipse MOSAIC">
<meta property="og:description" content="The Statistics Visualizer is only available with a commercial license of MOSAIC Extended. For further information on licences, please refer to our mailing list. The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
<meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
<meta property="article:published_time" content="2019-05-05T00:00:00&#43;01:00">
<meta property="article:modified_time" content="2019-05-05T00:00:00&#43;01:00">
<title>Statistics Visualizer | Eclipse MOSAIC</title>
</head>
<body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-visualization page-statistics ">
<aside class="search-results" id="search">
<div class="container">
<section class="search-header">
<div class="row no-gutters justify-content-between mb-3">
<div class="col-6">
<h1>Search</h1>
</div>
<div class="col-6 col-search-close">
<a class="js-search" href="#"><i class="fas fa-times-circle text-muted" aria-hidden="true"></i></a>
</div>
</div>
<div id="search-box">
<input name="q" id="search-query" placeholder="Search..." autocapitalize="off"
autocomplete="off" autocorrect="off" spellcheck="false" type="search">
</div>
</section>
<section class="section-search-results">
<div id="search-hits">
</div>
</section>
</div>
</aside>
<nav class="navbar navbar-expand-lg navbar-light compensate-for-scrollbar" id="navbar-main">
<div class="container">
<div class="d-none d-lg-inline-flex">
<a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
</div>
<button type="button" class="navbar-toggler" data-toggle="collapse"
data-target="#navbar-content" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span><i class="fas fa-bars"></i></span>
</button>
<div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
<a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC"></a>
</div>
<div class="navbar-collapse main-menu-item collapse justify-content-start" id="navbar-content">
<ul class="navbar-nav d-md-inline-flex">
<li class="nav-item">
<a class="nav-link " href="/mosaic/about"><span>About</span></a>
</li>
<li class="nav-item">
<a class="nav-link " href="/mosaic/about_deprecated"><span>About (Deprecated)</span></a>
</li>
<li class="nav-item">
<a class="nav-link " href="/mosaic/news"><span>News</span></a>
</li>
<li class="nav-item">
<a class="nav-link active" href="/mosaic/docs"><span>Documentation</span></a>
</li>
<li class="nav-item">
<a class="nav-link " href="/mosaic/tutorials"><span>Tutorials</span></a>
</li>
<li class="nav-item">
<a class="nav-link " href="/mosaic/download"><span>Download</span></a>
</li>
<li class="nav-item">
<a class="nav-link " href="/mosaic/community"><span>Community</span></a>
</li>
</ul>
</div>
<ul class="nav-icons navbar-nav flex-row ml-auto d-flex pl-md-2">
<li class="nav-item">
<a class="nav-link js-search" href="#" aria-label="Search"><i class="fas fa-search" aria-hidden="true"></i></a>
</li>
<li class="nav-item ">
<a href="https://github.com/eclipse/mosaic" target="blank">
<i class="fab fa-github" aria-hidden="true"></i>
</a>
</li>
</ul>
</div>
</nav>
<div class="container docs">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-3 docs-sidebar">
<form class="docs-search d-flex align-items-center">
<button class="btn docs-toggle d-md-none p-0 mr-3" type="button" data-toggle="collapse" data-target="#docs-nav" aria-controls="docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
<span><i class="fas fa-bars"></i></span>
</button>
<input name="q" type="search" class="form-control" placeholder="Search..." autocomplete="off">
</form>
<nav class="collapse docs-links" id="docs-nav">
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/getting_started">Getting Started</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/getting_started/">Download</a>
</li>
<li >
<a href="/mosaic/docs/getting_started/run_mosaic/">Run Eclipse MOSAIC</a>
</li>
</ul>
</div>
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/run_simulations">Run Simulations</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/run_simulations/">Run a single simulation</a>
</li>
<li >
<a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
</li>
<li >
<a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
</li>
</ul>
</div>
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/visualization">Visualization</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/visualization/">WebSocket Visualizer</a>
</li>
<li >
<a href="/mosaic/docs/visualization/filevis/">File Visualizer</a>
</li>
<li class="active">
<a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
</li>
<li >
<a href="/mosaic/docs/visualization/itef/">ITEF</a>
</li>
<li >
<a href="/mosaic/docs/visualization/phabmap/">PHABMap</a>
</li>
</ul>
</div>
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/simulators">Simulators</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/simulators/">Overview</a>
</li>
<li >
<a href="/mosaic/docs/simulators/traffic_simulator_sumo/">Traffic - Eclipse SUMO</a>
</li>
<li >
<a href="/mosaic/docs/simulators/traffic_simulator_phabmacs/">Traffic - PHABMACS</a>
</li>
<li >
<a href="/mosaic/docs/simulators/network_simulator_omnetpp/">Network - OMNeT&#43;&#43;</a>
</li>
<li >
<a href="/mosaic/docs/simulators/network_simulator_ns3/">Network - ns-3</a>
</li>
<li >
<a href="/mosaic/docs/simulators/network_simulator_sns/">Network - SNS</a>
</li>
<li >
<a href="/mosaic/docs/simulators/network_simulator_cell/">Network - Cell</a>
</li>
<li >
<a href="/mosaic/docs/simulators/application_simulator/">Application Simulator</a>
</li>
<li >
<a href="/mosaic/docs/simulators/environment_simulator/">Environment Simulator</a>
</li>
<li >
<a href="/mosaic/docs/simulators/battery_simulator/">Battery Simulator</a>
</li>
</ul>
</div>
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/building_scenarios">Building Scenarios</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/building_scenarios/">Simulation Scenarios</a>
</li>
<li >
<a href="/mosaic/docs/building_scenarios/scenario_convert/">Scenario Convert</a>
</li>
<li >
<a href="/mosaic/docs/building_scenarios/scenario_configuration/">Additional Scenario Configuration</a>
</li>
</ul>
</div>
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/develop_applications">Create Applications</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/develop_applications/">Basics</a>
</li>
<li >
<a href="/mosaic/docs/develop_applications/communication/">V2X Communication</a>
</li>
<li >
<a href="/mosaic/docs/develop_applications/event_scheduler/">Event Scheduling</a>
</li>
<li >
<a href="/mosaic/docs/develop_applications/road_traffic/">Scenario Database</a>
</li>
</ul>
</div>
<div class="docs-toc-item">
<a class="docs-toc-link" href="/mosaic/docs/extending_mosaic">Extending Eclipse MOSAIC</a>
<ul class="nav docs-sidenav">
<li >
<a href="/mosaic/docs/extending_mosaic/">Core Concepts</a>
</li>
<li >
<a href="/mosaic/docs/extending_mosaic/simulator_coupling/">Simulator Coupling</a>
</li>
<li >
<a href="/mosaic/docs/extending_mosaic/interactions/">Interactions</a>
</li>
<li >
<a href="/mosaic/docs/extending_mosaic/application_ambassador_details/">Application Ambassador</a>
</li>
<li >
<a href="/mosaic/docs/extending_mosaic/sumo_ambassador_details/">Sumo Ambassador</a>
</li>
<li >
<a href="/mosaic/docs/extending_mosaic/omnetpp_details/">OMNeT&#43;&#43; Federate</a>
</li>
<li >
<a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
</li>
</ul>
</div>
</nav>
</div>
<div class="d-none d-xl-block col-xl-2 docs-toc">
<ul class="nav toc-top">
<li><a href="#" id="back_to_top" class="docs-toc-title">Contents</a></li>
</ul>
<nav id="TableOfContents">
<ul>
<li><a href="#configuration-of-statistics-visualizer">Configuration of Statistics Visualizer</a></li>
<li><a href="#specification-of-the-statistics-visualizer">Specification of the Statistics Visualizer</a></li>
<li><a href="#application-of-the-statistics-visualizer">Application of the Statistics Visualizer</a></li>
</ul>
</nav>
</div>
<main class="col-12 col-md-9 col-xl-7 py-md-3 pl-md-4 docs-content" role="main">
<article class="article">
<div class="docs-article-container">
<h1>Statistics Visualizer</h1>
<div class="article-style">
<div class="alert alert-note">
<div>
The Statistics Visualizer is only available with a commercial license of MOSAIC Extended.
For further information on licences, please refer to our mailing list.
</div>
</div>
<p>The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.
With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation,
e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.</p>
<h2 id="configuration-of-statistics-visualizer">Configuration of Statistics Visualizer</h2>
<ul>
<li>The main configuration file for all visualizers is located at <code>scenarios/&lt;scenarioName&gt;/visualizer/visualizer_config.xml</code></li>
</ul>
<p>In order to use the Statistics Visualizer, the attribute <code>enabled</code> of the root element <code>visualizer</code> must be
set to &ldquo;true&rdquo;, as shown in the following listing.</p>
<pre><code class="language-xml">&lt;visualizer id=&quot;statistics&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&quot;&gt;
[..]
&lt;/visualizer &gt;
</code></pre>
<p><em>Configuration header for Statistics Visualizer</em></p>
<h2 id="specification-of-the-statistics-visualizer">Specification of the Statistics Visualizer</h2>
<p>In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For
each type of retrieving data we create a <code>&lt;statistic&gt;&lt;/statistic&gt;</code> block. Inside the block we define
one certain data type we want to retrieve in a <source> element. If you want to retrieve different data
types, just create another <code>&lt;statistic&gt;</code> block for each of them.</p>
<p>You can also set the wanted file name in the attribute filename of the statistic element. If the
attribute has not been given, each <code>&lt;statistic&gt;</code> block will get the name accordingly to the order number,
for example <code>1. StatisticsVisualizer-Block.csv</code>.</p>
<p>In the output attribute two options (<code>short</code>|<code>verbose</code>) can be selected. The short option provides us
a compact log file with information about only the highest level of the retrieved data (e.g. aggregate
values of grouped vehicles) in contrast to verbose option which also provides informations about every
individual vehicle in each group.</p>
<p>For a successful start, the element source must be placed in the first position in the <code>statistic</code> children
element list. Different options of possible data types, one of which must be specified in the source
element can be seen below.</p>
<pre><code class="language-xml">&lt;statistic filename=&quot;ChooseItYourself&quot; output=&quot;short&quot;&gt;
&lt;source&gt;NameOfSource&lt;/source&gt;
&lt;/statistic&gt;
</code></pre>
<p><em>Source options of Statistics Visualizer</em></p>
<h2 id="application-of-the-statistics-visualizer">Application of the Statistics Visualizer</h2>
<p>This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the
individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for
processing of the obtained data.</p>
<ol>
<li><code>source</code>: Data to obtain, choose between:
<ul>
<li><code>VehicleSpeeds</code> - Obtain the speeds of the vehicles of each simulation step.</li>
<li><code>VehicleStops</code> - The total number of stops during the journey of each vehicle.</li>
<li><code>VehicleTravelTimes</code> - The total travel time in s of the vehicles.</li>
<li><code>VehicleDelayTimes</code> - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s).</li>
<li><code>VehicleTravelledDistances</code> - The travelled distance inmof the vehicles.</li>
<li><code>VehicleFuelConsumptions</code> - The fuel consumptions of the vehicles in l per km.</li>
<li><code>VehicleHeadways</code> - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor.</li>
<li><code>DetectorFlow</code> - The flows of each subscripted induction loop.</li>
</ul>
</li>
</ol>
<div class="alert alert-note">
<div>
For using the detector flow type, inductions loops need to be configured in the SUMO and mapping configuration files (e.g. Highway tutorial).
</div>
</div>
<ol start="2">
<li>
<p><code>group-by</code>: The vehicles will be grouped by its vehicle type name (<code>VehicleType</code>), group they belong
to (<code>VehicleGroup</code>), or obtained data value (e.g. <code>Interval:200</code> categorizes values into groups of
size 200).</p>
</li>
<li>
<p><code>aggregation</code>: <code>Average</code> | <code>Harmonic</code> aggregation of the obtained values. An attribute <code>deviation</code>
can be set to true or false (it’s false if the attribute is not given). This attribute can be used for
grouped values to get the deviation of each value from the aggregated group value or to get a
standard deviation based on biased sample variance for groups (in the short output version).</p>
</li>
<li>
<p><code>filter</code>: Filtering with the attribute <code>filterType</code> (possible values are <code>keep</code> and <code>remove</code>).</p>
<ul>
<li>Filtering by required value slots with two options to specify them: <code>MoreThan:Value</code> or <code>LessThan:Value</code> (e.g. <code>MoreThan:5</code> to collect values which are bigger than 5 only)</li>
<li>Filtering by vehicle type. <code>VehicleType:Type</code> (e.g. <code>VehicleType:Car</code> to collect values only of vehicles of type &ldquo;Car&rdquo;)</li>
<li>Filtering by time. <code>Time:From-To</code> (e.g. <code>Time:0-100</code> to collect values only of the first 100s of simulation time)</li>
</ul>
</li>
</ol>
<p>The following example will show an example of how you can specify the Statictics Visualizer according to
your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want
to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim
scenario) and then calculate the average vehicle travel time value for each of these groups.</p>
<pre><code class="language-xml">&lt;visualizer id=&quot;statistics&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&quot;&gt;
&lt;statistic filename=&quot;AverageVehicleTravelTimes&quot; output=&quot;short&quot;&gt;
&lt;source&gt;VehicleTravelTimes&lt;/source&gt;
&lt;group-by&gt;VehicleGroup&lt;/group-by&gt;
&lt;aggregation&gt;Average&lt;/aggregation&gt;
&lt;/statistic&gt;
&lt;/visualizer&gt;
</code></pre>
<p><em>Getting the Average time by vehicle class</em></p>
<p>You can also combine filters if you want to get a certain interval with upper and lower boundaries. With
the following input instruction, only vehicles with the obtained data values between 250 and 500 will be
left after filtering.</p>
<pre><code class="language-xml">&lt;filter filterType=&quot;keep&quot;&gt;LessThan:500&lt;/filter&gt;
&lt;filter filterType=&quot;remove&quot;&gt;LessThan:250&lt;/filter&gt;
</code></pre>
<p><em>An example for filtering</em></p>
<p>Please notice that some sources are being not only obtained in each simulation step but also collected for
further processing as separate values for each of these steps (like <code>VehicleSpeeds</code>, <code>VehicleHeadways</code>).
These data types need to be aggregated to one value per vehicle if you want to group them by value or
filter them.</p>
<p>For demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the
average travel times of the vehicles and additionally groups them. As a result, the simulation produces
the following CSV file in the log directory:</p>
<pre><code class="language-csv">Group;Value;Total;
AdHoc;399.14;24;
Cellular;463.87;12;
Unequipped;459.18;84;
</code></pre>
<p><em>The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario</em></p>
</div>
<div class="article-widget">
<div class="post-nav">
<div class="post-nav-item">
<div class="meta-nav">Previous</div>
<a href="/mosaic/docs/visualization/phabmap/" rel="next">3D Visualization (PHABMap)</a>
</div>
</div>
</div>
</div>
</article>
</main>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha384-vk5WoKIaW/vJyUAd9n/wmopsmNhiy+L2Z+SBxGYnUkunIxVxAv/UtMOhba/xskxh" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.4/imagesloaded.pkgd.min.js" integrity="sha512-S5PZ9GxJZO16tT9r3WJp/Safn31eu8uWrzglMahDT4dsmgqWonRY9grk3j+3tfuPr9WJNsfooOR7Gi7HL5W2jw==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.6/isotope.pkgd.min.js" integrity="sha512-Zq2BOxyhvnRFXu0+WE6ojpZLOU2jdnqbrM1hmVdGzyeCa1DgM3X5Q4A/Is9xA1IkbUeDd7755dNNI/PzSf2Pew==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js" integrity="sha512-uURl+ZXMBrF4AwGaWmEetzrd+J5/8NRkWAvJx5sbPSSuOb0bZLqf+tOzniObO00BjHa/dD7gub9oCGMLPQHtQA==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.4.8/mermaid.min.js" integrity="sha512-1tS1YUns336Mtxl+vkaLcADPwE1CPNVy3WEf7nrI7DGMMb6/FAVBgL2IzAWVBkB6vVuK94s2zVoiXcw1QZ9S1g==" crossorigin="anonymous" title="mermaid"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha512-1LdB3V708w6G4QRl7NsVdTr7MDibyRXr9stQZ+EGjEE0ZPMZkA//ir7kCWmFyxdAJNIRXdR/ZeJmCV0boyiCXw==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/java.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/json.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/xml.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/shell.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/dos.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="anonymous"></script>
<script>const code_highlighting = true;</script>
<script>const isSiteThemeDark = false;</script>
<script>
const search_config = {"indexURI":"/mosaic/index.json","minLength":1,"threshold":0.3};
const i18n = {"no_results":"No results found","placeholder":"Search...","results":"results found"};
const content_type = {
'post': "Posts",
'project': "Projects",
'publication' : "Publications",
'talk' : "Talks"
};
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.1/anchor.min.js" integrity="sha512-aZotBPy6dqn8yVaLJwSrkJ+QxuxV695A4dgodAMvTU5JyNi5mhrr+LeaD3GSS+lx1SMFKNs0tu5ZMJEgNZQP2Q==" crossorigin="anonymous"></script>
<script>
anchors.add();
</script>
<script id="search-hit-fuse-template" type="text/x-template">
<div class="search-hit" id="summary-{{key}}">
<div class="search-hit-content">
<div class="search-hit-name">
<a href="{{relpermalink}}">{{title}}</a>
<div class="article-metadata search-hit-type">{{type}}</div>
<p class="search-hit-description">{{snippet}}</p>
</div>
</div>
</div>
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.1/fuse.min.js" integrity="sha512-o38bmzBGX+hD3JHWUFCDA09btWaqrNmoJ3RXLlrysA7PP01Kgs4UlE4MhelE1v5dJR3+cxlR4qQlotsW7jKsnw==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script>
<script src="/mosaic/js/academic.min.12ac32fae0b6a379104641bfce6313cb.js"></script>
<script src="https://www.eclipse.org/js/mosaic-wg-features-widget.js"></script>
<div id="modal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Cite</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<pre><code class="tex hljs"></code></pre>
</div>
<div class="modal-footer">
<a class="btn btn-outline-primary my-1 js-copy-cite" href="#" target="_blank">
<i class="fas fa-copy"></i> Copy
</a>
<a class="btn btn-outline-primary my-1 js-download-cite" href="#" target="_blank">
<i class="fas fa-download"></i> Download
</a>
<div id="modal-error"></div>
</div>
</div>
</div>
</div>
</body>
</html>