| <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> |
| <channel> |
| <title>WebSocket Visualizer | Eclipse MOSAIC</title> |
| <link>https://www.eclipse.org/mosaic/docs/visualization/</link> |
| <atom:link href="https://www.eclipse.org/mosaic/docs/visualization/index.xml" rel="self" type="application/rss+xml" /> |
| <description>WebSocket Visualizer</description> |
| <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Sun, 05 May 2019 00:00:00 +0100</lastBuildDate> |
| <image> |
| <url>https://www.eclipse.org/mosaic/images/logo.svg</url> |
| <title>WebSocket Visualizer</title> |
| <link>https://www.eclipse.org/mosaic/docs/visualization/</link> |
| </image> |
| |
| <item> |
| <title>File Visualizer</title> |
| <link>https://www.eclipse.org/mosaic/docs/visualization/filevis/</link> |
| <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate> |
| <guid>https://www.eclipse.org/mosaic/docs/visualization/filevis/</guid> |
| <description><p>The File Visualizer is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For |
| each interaction the File Visualizer receives, one line (or more in case of an iteration object) is added |
| to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.</p> |
| <p>One example output could be the following:</p> |
| <pre><code class="language-csv">CELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000 |
| V2X_MESSAGE_TRANSMISSION;6000000000;DENM;3;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null |
| VEHICLE_UPDATES;7000000000;veh_0;35.501624617716296;186.33236029307432;52.655993308955196;13.569065826100868;0.0;35.501624617716296;-0.6083753822837039;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false |
| VEHICLE_REGISTRATION;7000000000;veh_1;ElectricVehicle;null;Unequipped;5.0;2.5;70.0;2.6;4.5;0.5;1.0;1.0;0.0;1;1;0.0 |
| VEHICLE_UPDATES;8000000000;veh_0;34.978651295430026;186.33236029306624;52.65568017869267;13.569019012494635;0.0;70.48027591314633;-0.5229733222862691;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false |
| V2X_MESSAGE_TRANSMISSION;8000000000;DENM;4;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null |
| VEHICLE_UPDATES;9000000000;veh_0;35.73455352933612;186.33236029306624;52.65536028153272;13.56897118787549;0.0;106.21482944248245;0.7559022339060917;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false |
| VEHICLE_UPDATES;9000000000;veh_1;35.52345835176762;186.33265000325784;52.65599046030636;13.569112899208802;0.0;35.52345835176762;-0.5865416482323766;0.0;false;1;4067968_28830219_3290027832_2450938914;1;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false |
| </code></pre> |
| <h2 id="configuring-the-file-visualizer">Configuring the File Visualizer</h2> |
| <ul> |
| <li>The main configuration file is located at <code>&lt;mosaic-root&gt;/scenarios/&lt;scenarioName&gt;/visualizer/visualizer_config.xml</code></li> |
| </ul> |
| <h4 id="basic-configuration">Basic configuration</h4> |
| <p>The following listing shows a basic example for the configuration of the file visualizer:</p> |
| <pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; |
| &lt;visualizer id=&quot;fileVisualizer&quot; enabled=&quot;true&quot; update=&quot;5&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.FileVisualizerConfig&quot;&gt; |
| &lt;filename&gt;visualizer.csv&lt;/filename&gt; |
| &lt;directory&gt;.&lt;/directory&gt; |
| &lt;separator&gt;;&lt;/separator&gt; |
| &lt;subscriptions&gt; |
| &lt;subscription id=&quot;...&quot;&gt; |
| ... |
| &lt;/subscription&gt; |
| ... |
| &lt;/subscriptions&gt;&gt; |
| &lt;/visualizer&gt; |
| </code></pre> |
| <p><em>Basic configuration parameters for file visualizer</em></p> |
| <p>The usage of the parameters is described in the following table:</p> |
| <table> |
| <thead> |
| <tr> |
| <th>Parameter</th> |
| <th>Usage</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td><code>id</code></td> |
| <td>Sets the id for the visualizer</td> |
| </tr> |
| <tr> |
| <td><code>enabled</code></td> |
| <td>If set to &ldquo;false&rdquo;, visualizer is not used (default value is &ldquo;true&rdquo;)</td> |
| </tr> |
| <tr> |
| <td><code>update</code></td> |
| <td>Sets the update interval in seconds for the visualizer</td> |
| </tr> |
| <tr> |
| <td><code>start</code></td> |
| <td>Sets the start time in seconds for visualization. This has nothing todo with the run time of the actual simulation</td> |
| </tr> |
| <tr> |
| <td><code>end</code></td> |
| <td>Sets the end time in seconds for visualization. This has nothing todo with the run time of the actual simulation</td> |
| </tr> |
| <tr> |
| <td><code>loader</code></td> |
| <td>Sets where the visualizer is loaded from using the Java-class (see previous listing)</td> |
| </tr> |
| </tbody> |
| </table> |
| <p><em>Basic Configuration of file visualizer</em></p> |
| <h4 id="interaction-record">Interaction record</h4> |
| <p>Each interaction record is derived from a certain interaction type and composed of several entries,which are separated by Element <code>separator</code>.</p> |
| <p>The configuration of the file visualizer is explained at the example of the <code>VehicleUpdates</code> interaction:</p> |
| <pre><code class="language-xml">&lt;subscription id=&quot;VehicleUpdates&quot; enabled=&quot;true&quot;&gt; |
| &lt;entries&gt; |
| &lt;entry&gt;&quot;UPDATE_VEHICLE&quot;&lt;/entry&gt; |
| &lt;entry&gt;Time&lt;/entry&gt; |
| &lt;entry&gt;Updated:Name&lt;/entry&gt; |
| &lt;entry&gt;Updated:Speed&lt;/entry&gt; |
| &lt;entry&gt;Updated:Position.Latitude&lt;/entry&gt; |
| &lt;entry&gt;Updated:Position.Longitude&lt;/entry&gt; |
| &lt;/entries&gt; |
| &lt;/subscription&gt; |
| </code></pre> |
| <p><em>Specific Configuration for interaction</em></p> |
| <ul> |
| <li>Attribute <code>id</code> indicates the interaction type, namely the class name of the interaction.</li> |
| <li>The element <code>entries</code> defines the format and content of the finally visualized subscription record.</li> |
| <li>The element <code>entries</code> is composed of several sub-elements <code>entry</code>, which correspond to columns of a subscription |
| record and the sequence of the columns is the same as that of sub-elements entry.</li> |
| </ul> |
| <p>In total, there are three basic types of entries:</p> |
| <h4 id="constant">Constant</h4> |
| <p>Every quoted entry is defined as a constant. The content inside the quotation will be directly written |
| into each corresponding interaction record.</p> |
| <pre><code class="language-xml">&lt;entry&gt;&quot;UPDATE_VEHICLE&quot;&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for constant type entry</em></p> |
| <h4 id="basic-method">Basic method</h4> |
| <p>The Basic method type accesses values of the interaction object by using the appropriate <code>getXXX()</code> methods. For an entry, the |
| root object for method invoking is the corresponding interaction class, here <code>VehicleUpdates</code>. As this object provides |
| the simulation time by calling the getter method <code>getTime()</code>, the entry <code>Time</code> retrieves the requested value. |
| If a null object is returned before the last method of cascaded methods is invoked, then <code>null</code> will be written |
| to the corresponding field.</p> |
| <pre><code class="language-xml">&lt;entry&gt;Time&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for constant type entry</em></p> |
| <h4 id="iteration">Iteration</h4> |
| <pre><code class="language-xml">&lt;entry&gt;Updated:Id&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for method type entry with iteration</em></p> |
| <p>The first part of this example is <code>Updated</code> , which means to invoke the getUpdated method of class |
| <code>VehicleUpdates</code>. Then a list of <code>VehicleInfo</code> objects is returned. The character <code>:</code> indicates the iteration, |
| which means that for each of the <code>VehicleInfo</code> objects in the returned list the <code>getId</code> method is invoked.</p> |
| <h4 id="cascading">Cascading</h4> |
| <pre><code class="language-xml">&lt;entry&gt;Updated:Position.Latitude&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for method type entry with iteration and cascading</em></p> |
| <p>In this example, there is a dot operation, which is a cascade operation. Here <code>getPosition</code> method of <code>VehicleInfo</code> |
| class is called and a <code>GlobalPosition</code> object is returned. Then we continuously invoke the <code>getLatitude</code> |
| method of this <code>GlobalPosition</code> object.</p> |
| <h4 id="extended-method">Extended Method</h4> |
| <p>All the methods involved above are the basic methods. There also is some functionality, which we cannot |
| extract from these existing methods. So an extended method set is offered to meet these requirements |
| and also as an extension point in the future.</p> |
| <pre><code class="language-xml">&lt;entry&gt;TimeInSec&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for simple extended method type entry</em></p> |
| <p>With existing methods of <code>VehicleUpdates</code> and its super class <code>Interaction</code>, we cannot get the timestamp of |
| a interaction in second. (only <code>Interaction.getTime</code>, which returns a time in ns, is available). Here, <code>getTimeInSec</code> |
| is a method extension for <code>Interaction</code> class. The extended method set will be listed later.</p> |
| <h2 id="further-details">Further details</h2> |
| <p>The method type of entry definition supports cascaded iteration as follows:</p> |
| <pre><code class="language-xml">&lt;entry&gt;List1:List2:Id&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for cascaded iteration</em></p> |
| <p>It is possible to handle several different iterating operations, coming from the entry definition:</p> |
| <pre><code class="language-xml">&lt;entry&gt;Senders:Id&lt;/entry&gt; |
| &lt;entry&gt;Receivers:Id&lt;/entry&gt; |
| </code></pre> |
| <p><em>An example for multi-level iteration</em></p> |
| <p><code>getSenders()</code> and <code>getReceivers()</code> are two different iterations. In this case, a combination of both Ids from |
| the lists will be generated. The result may look like this:</p> |
| <pre><code class="language-csv">sender1, receiver1 |
| sender1, receiver2 |
| sender2, receiver1 |
| sender2, receiver2 |
| </code></pre> |
| <p><em>Visualising result of the above listing</em></p> |
| <p>Note: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.</p> |
| <h2 id="additional-features">Additional features</h2> |
| <h4 id="limit-output-on-time-frame">Limit output on time frame</h4> |
| <p>You can configure the FileVisualizer to write out interactions within a specific frame of simulation time. |
| This can be configured by setting the <code>start</code> and <code>end</code> attributes accordingly:</p> |
| <pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; |
| &lt;visualizer id=&quot;fileVisualizer&quot; enabled=&quot;true&quot; |
| start=&quot;300&quot; end=&quot;1000&quot; update=&quot;5&quot; |
| loader=&quot;com.dcaiti.vsimrti.fed.visualizer.FileVisualizerConfig&quot;&gt; |
| ... |
| &lt;/visualizer&gt; |
| </code></pre> |
| <p><em>An example for restricting visualization of interactions within a time frame</em></p> |
| <h4 id="compress-output">Compress Output</h4> |
| <p>The tag <code>&lt;write&gt;file+compress&lt;/write&gt;</code> can be added to the visualizer configuration, in order |
| to compress the output using gzip compression. This feature is suitable for large-scale scenarios with |
| many outputs.</p> |
| <pre><code class="language-xml">&lt;visualizer id=&quot;fileVisualizer&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.FileVisualizerConfig&quot;&gt; |
| &lt;write&gt;file+compress&lt;/write&gt; |
| ... |
| &lt;/visualizer&gt; |
| </code></pre> |
| </description> |
| </item> |
| |
| <item> |
| <title>Integrated Test and Evaluation Framework (ITEF)</title> |
| <link>https://www.eclipse.org/mosaic/docs/visualization/itef/</link> |
| <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate> |
| <guid>https://www.eclipse.org/mosaic/docs/visualization/itef/</guid> |
| <description><div class="alert alert-note"> |
| <div> |
| ITEF 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 Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios. It is suited for field operational tests as well as simulations.</p> |
| <p>ITEF also offers a variety of visualization features, making a comparison of different vehicles or between equipped and unequipped vehicles easy. It is structured into 4 screens, whereas the following 3 screens are intended for the visualization.</p> |
| <p>The Replay screen (see Figure 1) is intended to be used for an initial overview of the test run. The main feature is the display of the vehicle movements on a map, while the player can be used to playback the movement situation. In this manner, the ITEF allows a location and time dependent evaluation of simulation test runs.</p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-itef-replay-screen"> |
| |
| |
| <a data-fancybox="" href="../images/replayrun.png" data-caption="ITEF Replay Screen"> |
| |
| |
| <img src="../images/replayrun.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption data-pre="Figure " data-post=":" class="numbered"> |
| ITEF Replay Screen |
| </figcaption> |
| |
| |
| </figure> |
| |
| <p>The Evaluate screen (see Figure 2) allows the detailed investigation of the correlations in a test run. The main feature of this screen is to display the behavior summarized over the whole run. The structure of this screen with is similar to the Replay screen. However, the focus here is on the detailed (statistical) summary of evaluated metrics.</p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-itef-evaluate-screen"> |
| |
| |
| <a data-fancybox="" href="../images/evaluaterun.png" data-caption="ITEF Evaluate Screen"> |
| |
| |
| <img src="../images/evaluaterun.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption data-pre="Figure " data-post=":" class="numbered"> |
| ITEF Evaluate Screen |
| </figcaption> |
| |
| |
| </figure> |
| |
| <p>Finally, the Statistics screen (see Figure 3) provides statistical evaluations of the test and simulation |
| run. Currently, statistics on Vehicle Speed, Travel Time, Travel Distance and severalmore are supported.</p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-itef-statistics-screen"> |
| |
| |
| <a data-fancybox="" href="../images/statistics.png" data-caption="ITEF Statistics Screen"> |
| |
| |
| <img src="../images/statistics.png" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption data-pre="Figure " data-post=":" class="numbered"> |
| ITEF Statistics Screen |
| </figcaption> |
| |
| |
| </figure> |
| |
| </description> |
| </item> |
| |
| <item> |
| <title>3D Visualization (PHABMap)</title> |
| <link>https://www.eclipse.org/mosaic/docs/visualization/phabmap/</link> |
| <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate> |
| <guid>https://www.eclipse.org/mosaic/docs/visualization/phabmap/</guid> |
| <description><div class="alert alert-note"> |
| <div> |
| The 3D Visualization 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 Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D |
| engine and models to visualize vehicle movements and various events which occur during the simulation. |
| Next to the road network, which can be optionally rendered by the visualizer, the following units and |
| events are visualized:</p> |
| <ul> |
| <li>Vehicle movements coming from the traffic simulation</li> |
| <li>Road Side Units at their defined location</li> |
| <li>V2X-messages sent via cellular communication (indicated as green circles)</li> |
| <li>V2X-messages sent via ITS-G5 communication (indicated as blue circles)</li> |
| <li>V2X-messages received by vehicles (indicated as red circles)</li> |
| </ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <figure id="figure-the-3d-visualization-tool-phabmap-displaying-events-from-the-simulation"> |
| |
| |
| <a data-fancybox="" href="../images/phabmap.jpg" data-caption="The 3D visualization tool PHABMap displaying events from the simulation"> |
| |
| |
| <img src="../images/phabmap.jpg" alt="" > |
| </a> |
| |
| |
| |
| |
| <figcaption data-pre="Figure " data-post=":" class="numbered"> |
| The 3D visualization tool PHABMap displaying events from the simulation |
| </figcaption> |
| |
| |
| </figure> |
| |
| </description> |
| </item> |
| |
| <item> |
| <title>Statistics Visualizer</title> |
| <link>https://www.eclipse.org/mosaic/docs/visualization/statistics/</link> |
| <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate> |
| <guid>https://www.eclipse.org/mosaic/docs/visualization/statistics/</guid> |
| <description><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> |
| </description> |
| </item> |
| |
| </channel> |
| </rss> |