blob: 6771b62a9bde09510ef03f07a7ce03999c5607e1 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Simulation Scenarios | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
<link>https://www.eclipse.org/mosaic/docs/building_scenarios/</link>
<atom:link href="https://www.eclipse.org/mosaic/docs/building_scenarios/index.xml" rel="self" type="application/rss+xml" />
<description>Simulation Scenarios</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>Simulation Scenarios</title>
<link>https://www.eclipse.org/mosaic/docs/building_scenarios/</link>
</image>
<item>
<title>Scenario Convert</title>
<link>https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/</link>
<pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
<guid>https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/</guid>
<description>&lt;div class=&#34;alert alert-extended&#34;&gt;
&lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
&lt;div&gt;
&lt;p&gt;The tool &lt;strong&gt;scenario-convert&lt;/strong&gt; is part of &lt;strong&gt;
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download/#overview&#34;&gt;
MOSAIC Extended
&lt;/a&gt;
&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;However, you can use scenario-convert &lt;strong&gt;for free&lt;/strong&gt; to generate scenarios which are executable with Eclipse MOSAIC. &lt;strong&gt;
&lt;a href=&#34;https://www.dcaiti.tu-berlin.de/research/simulation/download/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
Get it here
&lt;/a&gt;
.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&#34;text-align: center;&#34;&gt;
&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://www.dcaiti.tu-berlin.de/research/simulation/download/&#34; title=&#34;Download scenario-convert from DCAITI mirror&#34;&gt;&lt;i class=&#34;fas fa-download&#34;&gt;&lt;/i&gt;Download scenario-convert from DCAITI mirror&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;scenario-convert&lt;/strong&gt; is a useful tool, which can be used to create new scenarios or import and export data from
external sources like OpenStreetMap, SUMO etc into your existing scenarios.&lt;br&gt;
It will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation,
route calculation&amp;hellip;).&lt;br&gt;
Based on a MOSAIC database, scenario-convert can export the data to SUMO-conform formats.
Furthermore one can choose, whether to use routes generated by &lt;code&gt;scenario-convert&lt;/code&gt;, use existing
routes or build own routes via route generation tools (e.g. DUAROUTER by SUMO).&lt;/p&gt;
&lt;p&gt;This chapter intends to highlight the most common workflows for the work with &lt;code&gt;scenario-convert&lt;/code&gt;.
We will be using
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.osm&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
steglitz.osm
&lt;/a&gt;
OSM-file for most of the
use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.&lt;/p&gt;
&lt;div class=&#34;alert alert-note&#34;&gt;
&lt;div&gt;
&lt;p&gt;
&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;
Here
&lt;/a&gt;
you can find a complete reference to all options scenario-convert offers.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&#34;figure-osm-file-of-steglitz&#34;&gt;
&lt;a data-fancybox=&#34;&#34; href=&#34;../images/osm_uncleaned.png&#34; data-caption=&#34;OSM-File of Steglitz&#34;&gt;
&lt;img src=&#34;../images/osm_uncleaned.png&#34; alt=&#34;&#34; &gt;
&lt;/a&gt;
&lt;figcaption data-pre=&#34;Figure &#34; data-post=&#34;:&#34; class=&#34;numbered&#34;&gt;
OSM-File of Steglitz
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&#34;creating-a-complete-eclipse-mosaic-scenario-from-an-osm-file-with-one-command&#34;&gt;Creating a complete Eclipse MOSAIC-scenario from an OSM-file with one command&lt;/h2&gt;
&lt;p&gt;This is the most straight forward way to create a scenario from your OSM-file.
We will use the option &lt;code&gt;--osm2mosaic&lt;/code&gt;, which is a combination of the options &lt;code&gt;--osm2db&lt;/code&gt;
and &lt;code&gt;--db2mosaic&lt;/code&gt;.&lt;br&gt;
Let&amp;rsquo;s start off by showing you how a complete call could look like:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&#34;alert alert-note&#34;&gt;
&lt;div&gt;
&lt;p&gt;In this section we use the scenario name &lt;code&gt;steglitz.*&lt;/code&gt; as synonym for &lt;code&gt;path/to/steglitz.*&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This achieves a couple of things. First off the script is going to create a SQLite-database,
which is used by Eclipse MOSAIC. Furthermore, a directory will be created, which should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ &amp;lt;working-directory&amp;gt;
└─ steglitz
├─ steglitz.osm
├─ application
| └─ steglitz.db
├─ cell
| ├─ cell_config.json
| ├─ network.json
| └─ regions.json
├─ environment
| └─ environment_config.json
├─ mapping
| └─ mapping_config.json
├─ ns3
| ├─ ns3_config.json
| └─ ns3_federate_config.xml
├─ omnetpp
| ├─ omnetpp_config.json
| └─ omnetpp.ini
├─ output
| └─ output_config.xml
├─ sns
| └─ sns_config.json
├─ sumo
| ├─ steglitz.net.xml
| └─ steglitz.sumocfg
└─ scenario_config.json .................. Basic configuration of the simulation scenario
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let&amp;rsquo;s walk through all these files:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First the &lt;code&gt;steglitz.db&lt;/code&gt; will be created using the &lt;code&gt;steglitz.osm&lt;/code&gt;-file.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;steglitz.db&lt;/code&gt; will be used to create &lt;code&gt;steglitz.con.xml&lt;/code&gt;, &lt;code&gt;steglitz.edg.xml&lt;/code&gt; and &lt;code&gt;steglitz.nod.xml&lt;/code&gt;, which are files used by SUMO.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://sumo.dlr.de/wiki/NETCONVERT&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
SUMO Netconvert
&lt;/a&gt;
is used to create &lt;code&gt;steglitz.net.xml&lt;/code&gt;, which is a
&lt;a href=&#34;https://sumo.dlr.de/wiki/Networks/SUMO_Road_Networks&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
network representation
&lt;/a&gt;
in SUMO.&lt;/li&gt;
&lt;li&gt;Now the SUMO-configuration &lt;code&gt;steglitz.sumo.cfg&lt;/code&gt; is written.&lt;/li&gt;
&lt;li&gt;Afterwards the &lt;code&gt;mapping_config.json&lt;/code&gt; and &lt;code&gt;scenario_config.json&lt;/code&gt; are created and all files are moved to the right place.
In the &lt;code&gt;scenario_config.json&lt;/code&gt; values like the center coordinate will automatically be set using data from the SUMO related files.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While this is technically sufficient to start working on your scenario there are a couple of other things
you can do to achieve better results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Clean the OSM-file using Osmosis&lt;/strong&gt;&lt;br&gt;
Osmosis will automatically be used to create a new OSM-file with the suffix &lt;code&gt;_cleaned&lt;/code&gt;. The created
file will contain much less clutter and usually is better suited for simulation purposes.
Check the images below to see the difference the clean-up process can make.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&#34;row&#34;&gt;
&lt;div class=&#34;col-6&#34;&gt;
&lt;figure id=&#34;figure-uncleaned-osm-file&#34;&gt;
&lt;a data-fancybox=&#34;&#34; href=&#34;../images/osm_uncleaned.png&#34; data-caption=&#34;Uncleaned OSM-file&#34;&gt;
&lt;img src=&#34;../images/osm_uncleaned.png&#34; alt=&#34;&#34; &gt;
&lt;/a&gt;
&lt;figcaption data-pre=&#34;Figure &#34; data-post=&#34;:&#34; class=&#34;numbered&#34;&gt;
Uncleaned OSM-file
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class=&#34;col-6&#34;&gt;
&lt;figure id=&#34;figure-cleaned-osm-file&#34;&gt;
&lt;a data-fancybox=&#34;&#34; href=&#34;../images/osm_cleaned.png&#34; data-caption=&#34;Cleaned OSM-file&#34;&gt;
&lt;img src=&#34;../images/osm_cleaned.png&#34; alt=&#34;&#34; &gt;
&lt;/a&gt;
&lt;figcaption data-pre=&#34;Figure &#34; data-post=&#34;:&#34; class=&#34;numbered&#34;&gt;
Cleaned OSM-file
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;row&#34;&gt;
&lt;div class=&#34;col-6&#34;&gt;
&lt;figure id=&#34;figure-uncleaned-net-file&#34;&gt;
&lt;a data-fancybox=&#34;&#34; href=&#34;../images/netfile_uncleaned.png&#34; data-caption=&#34;Uncleaned Net-file&#34;&gt;
&lt;img src=&#34;../images/netfile_uncleaned.png&#34; alt=&#34;&#34; &gt;
&lt;/a&gt;
&lt;figcaption data-pre=&#34;Figure &#34; data-post=&#34;:&#34; class=&#34;numbered&#34;&gt;
Uncleaned Net-file
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class=&#34;col-6&#34;&gt;
&lt;figure id=&#34;figure-cleaned-net-file&#34;&gt;
&lt;a data-fancybox=&#34;&#34; href=&#34;../images/netfile_cleaned.png&#34; data-caption=&#34;Cleaned Net-file&#34;&gt;
&lt;img src=&#34;../images/netfile_cleaned.png&#34; alt=&#34;&#34; &gt;
&lt;/a&gt;
&lt;figcaption data-pre=&#34;Figure &#34; data-post=&#34;:&#34; class=&#34;numbered&#34;&gt;
Cleaned Net-file
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To avoid &amp;ldquo;cleaning&amp;rdquo; the OSM-file, please use the option &amp;ldquo;skip-osm-filter&amp;rdquo;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Generating Routes&lt;/strong&gt;&lt;br&gt;
The scenario-convert also offers the option &lt;code&gt;--generate-routes&lt;/code&gt;, which will generate
a route-file, given some additional information. For example purposes we will run the
following command:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes
--route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will calculate three routes between the two given coordinates.&lt;/p&gt;
&lt;p&gt;Alternatively you can use the following command in order to generate routes with node-id&amp;rsquo;s as start and end point, which can be found in the &lt;code&gt;steglitz.nod.xml&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes
--route-begin-node-id 267350668 --route-end-node-id 313139970 --number-of-routes 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;See
&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;
below
&lt;/a&gt;
for all command line options.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conlusion&lt;/strong&gt;&lt;br&gt;
This wraps up one of the main workflows with the scenario-convert-script.
A quick reminder on what we achieved:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cleaned up an OSM-file to only contain relevant data.&lt;/li&gt;
&lt;li&gt;Converted that OSM-file to formats that Eclipse MOSAIC/SUMO can handle.&lt;/li&gt;
&lt;li&gt;Created the project structure for a scenario.&lt;/li&gt;
&lt;li&gt;Calculated routes between two coordinates.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With all of this you can now start further developing your scenario. For a more detailed description on the next steps
please have a look
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/&#34;&gt;
here (Simulation Scenarios)
&lt;/a&gt;
and
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/develop_applications/&#34;&gt;
here (Application Development)
&lt;/a&gt;
.&lt;br&gt;
While this is the &amp;lsquo;happy world&amp;rsquo; workflow it is often necessary to manually adapt routes and
insert them into your scenario. The following workflow
will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.&lt;/p&gt;
&lt;h2 id=&#34;importing-routes-to-your-scenario&#34;&gt;Importing Routes to your scenario&lt;/h2&gt;
&lt;p&gt;As mentioned above your routes won&amp;rsquo;t always be created by the scenario-convert script. We generated some routes
for the steglitz-scenario using SUMO&amp;rsquo;s
&lt;a href=&#34;http://sumo.dlr.de/wiki/DUAROUTER&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
duarouter
&lt;/a&gt;
, which you can find
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.rou.xml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
here
&lt;/a&gt;
. We&amp;rsquo;ll start with only the &lt;code&gt;steglitz.osm&lt;/code&gt; and
&lt;code&gt;steglitz.rou.xml&lt;/code&gt; files:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ &amp;lt;working-directory&amp;gt;
├─ steglitz.osm
└─ steglitz.rou.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Creating the database&lt;/strong&gt;&lt;br&gt;
We&amp;rsquo;ll start off by solely creating the database and applying OSMOSIS with the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;java -jar scenario-convert.jar --osm2db -i steglitz.osm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The directory should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ &amp;lt;working-directory&amp;gt;
├─ steglitz.db
├─ steglitz.osm
├─ steglitz.rou.xml
└─ steglitz_cleaned.osm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Importing the route-file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s import our routes into the database.&lt;br&gt;
We achieve this by calling:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java -jar scenario-convert.jar --sumo2db -i steglitz.rou.xml -d .\steglitz.db
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now all new routes are imported into our database. The following image shows a visualization of one of
the created routes.&lt;/p&gt;
&lt;figure id=&#34;figure-visualization-of-one-of-the-routes&#34;&gt;
&lt;a data-fancybox=&#34;&#34; href=&#34;../images/steglitz_route.png&#34; data-caption=&#34;Visualization of one of the routes&#34;&gt;
&lt;img src=&#34;../images/steglitz_route.png&#34; alt=&#34;&#34; &gt;
&lt;/a&gt;
&lt;figcaption data-pre=&#34;Figure &#34; data-post=&#34;:&#34; class=&#34;numbered&#34;&gt;
Visualization of one of the routes
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Creating the scenario&lt;/strong&gt;&lt;br&gt;
The final step is to create the scenario from the files we created so far.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java -jar scenario-convert.jar --db2mosaic -d .\steglitz.db
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Instead of copying our SUMO-files this will generate all necessary files and move them into a Eclipse MOSAIC-conform
folder structure:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ &amp;lt;working-directory&amp;gt;
├─ steglitz.osm
└─ steglitz
├─ application
| └─ steglitz.db
├─ mapping
| └─ mapping_config.json
├─ sumo
| ├─ steglitz.net.xml
| └─ steglitz.sumocfg
└─ scenario_config.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see the resulting folder structure looks just like the final output from the first workflow described.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
You should now know how you can manually add routes to your scenario and have a deeper understanding of the way that
some of the script parameters work.&lt;/p&gt;
&lt;h3 id=&#34;attached-files&#34;&gt;Attached Files&lt;/h3&gt;
&lt;p&gt;A list of all attached files in this chapter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.osm&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
Steglitz OSM-file
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.rou.xml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
Steglitz Route-file
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;reference-documentation-for-scenario-convert&#34;&gt;Reference documentation for scenario-convert&lt;/h2&gt;
&lt;h3 id=&#34;usage-of-scenario-convert&#34;&gt;Usage of scenario-convert&lt;/h3&gt;
&lt;p&gt;The following listing shows an overview for the usage of scenario-convert:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;usage: scenario-convert [OPERATION] [OPTIONS]
Examples:
1. Import an osm file and write data into database
&amp;gt; scenario-convert --osm2db -i &amp;lt;OSMFILE&amp;gt; [-d &amp;lt;DATABASE&amp;gt;]
2. Export database content to SUMO-readable files
&amp;gt; scenario-convert --db2sumo -d &amp;lt;DATABASE&amp;gt; [-s &amp;lt;SUMOPREFIX&amp;gt;]
3. Import a SUMO routefile into a database
&amp;gt; scenario-convert --sumo2db -d &amp;lt;DATABASE&amp;gt; -i &amp;lt;ROUTEFILE&amp;gt;.rou.xml
4. Combine steps 1 and 2
&amp;gt; scenario-convert --osm2sumo -d &amp;lt;DATABASE&amp;gt; -i &amp;lt;OSMFILE&amp;gt; [-s &amp;lt;SUMOPREFIX&amp;gt;]
5. Export db content to Shapefile format
&amp;gt; scenario-convert --db2shp -d &amp;lt;DATABASE&amp;gt;
6. Import an srtm file and write elevation data to nodes of an existing database
&amp;gt; scenario-convert --srtm2db -i &amp;lt;SRTMFILE&amp;gt; -d &amp;lt;DATABASE&amp;gt;
7. Create a complete MOSAIC scenario from an osm file
&amp;gt; scenario-convert --osm2mosaic -i &amp;lt;OSMFILE&amp;gt;
8. Create a scenario database from an SUMO net file
&amp;gt; scenario-convert --sumo2db -i &amp;lt;NETFILE&amp;gt;.net.xml
9. Calculate a route from node 123 to node 456
&amp;gt; scenario-convert --generate-routes -d &amp;lt;DATABASE&amp;gt; --route-begin-node-id 123 --route-end-node-id 456
The following arguments are available:
-h,--help Prints this help screen.
-c,--config-file &amp;lt;PATH&amp;gt; Optional, refers to a configuration file which contains all parameters in
JSON format.
--osm2db Converts a OpenStreetMap file to a new scenario database.
--sumo2db Imports a SUMO Network/Routefile. Be aware that you may have to re-export an
imported network.
--srtm2db Imports an SRTM file and writes elevation data to nodes.
--db2sumo Exports the network to SUMO node and edge files.
--db2shp Exports the database into Shapefile format.
--db2mosaic Creates directory structure for a MOSAIC scenario based on the database
contents.
--osm2sumo Combination of osm2db and db2sumo.
--osm2mosaic Combination of osm2db and db2mosaic.
--update Updates the database to the current scheme.
-d,--database &amp;lt;PATH&amp;gt; The path to the database.
For import: File to import to. If not given, a new file is created.
For export: File to load from.
For update operations: file to update.
-i,--input &amp;lt;PATH&amp;gt; Defines an input file to use in an import. File type depends on the import
operation (OSM File/Database file/SUMO net file/SUMO rou file).
-s,--sumo-prefix &amp;lt;STRING&amp;gt; Prefix for the generated sumo files (uses database name when not defined).
-f,--force Force overwrite of existing files instead of incrementing file names.
-m,--mapping-file &amp;lt;PATH&amp;gt; Uses the given mapping configuration to export existing vehicleTypes and
vehicles data to *.rou.xml.
--import-lat &amp;lt;DOUBLE&amp;gt; Center latitude of imported region to project coordinates.
--import-lon &amp;lt;DOUBLE&amp;gt; Center longitude of imported region to project coordinates.
--import-zone &amp;lt;STRING&amp;gt; UTM zone of location for projecting coords in default format (e.g. 32n).
-g,--generate-routes Generates route(s) from one point to another. The begin and end for the route
must be known (see below options).
--route-begin-lat &amp;lt;DOUBLE&amp;gt; Latitude of the starting point, needs --route-begin-lon as well.
--route-begin-lon &amp;lt;DOUBLE&amp;gt; Longitude of the starting point, needs --route-begin-lat as well.
--route-begin-latlon &amp;lt;DOUBLE,DOUBLE&amp;gt; [latitude],[longitude] of the starting point.
--route-begin-node-id &amp;lt;STRING&amp;gt; OSM node id of the starting point (use instead of lat/lon).
--route-end-lat &amp;lt;DOUBLE&amp;gt; Latitude of the starting point, needs --route-end-lon as well.
--route-end-lon &amp;lt;DOUBLE&amp;gt; Longitude of the starting point, needs --route-end-lat as well.
--route-end-latlon &amp;lt;DOUBLE,DOUBLE&amp;gt; [latitude],[longitude] of the ending point.
--route-end-node-id &amp;lt;STRING&amp;gt; OSM node id of the ending point (use instead of lat/lon).
--route-matrix &amp;lt;STRING,STRING,...&amp;gt; Calculates all possible routes starting and ending at the given nodes, given
as comma-separated list (e.g. 12345,87123,89123)
--number-of-routes &amp;lt;INTEGER&amp;gt; Defines the number of alternative routes to be calculated (default=1).
--skip-osm-filter Skips automatic filtering of the OSM file (only with osm2xxx).
--skip-turn-restrictions Ignore all defined turn restrictions on OSM import.
--skip-graph-cleanup Turns off the removal of unconnected parts from the main traffic network
graph . Since several components of MOSAIC require one main graph without
disconnected ways and nodes, this option should be used only if the cleanup
procedure is faulty.
--skip-netconvert Skips starting sumo netconvert for creating netfile (only with xxx2sumo).
--skip-traffic-lights-export Skips exporting traffic light information for nodes (only with xxx2sumo).
--osm-speeds-file &amp;lt;PATH&amp;gt; Define a property file which contains speed information which are used to set
the speed for OSM ways without a max speed tag (only with osm2xxx).
--osm-speeds-overwrite If set to true , the maxspeed tags of ways are ignored and replaced by either
default values , or by speed information defined via the --osm-speeds-file
option (only with osm2xxx).
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;configuration-files-for-scenario-convert&#34;&gt;Configuration-files for scenario-convert&lt;/h3&gt;
&lt;p&gt;Scenario-convert offers a way to safe your conversion-parameters in a &lt;code&gt;JSON&lt;/code&gt; configuration file using
the option &lt;code&gt;-c&lt;/code&gt; or &lt;code&gt;--config-file&lt;/code&gt;.&lt;br&gt;
The following listing shows how to save the options used in the example above:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
&amp;#34;operatingMode&amp;#34;: &amp;#34;osm2mosaic&amp;#34;,
&amp;#34;inputFile&amp;#34;: &amp;#34;steglitz.osm&amp;#34;,
&amp;#34;executeOsmosis&amp;#34;: true,
&amp;#34;generateRoutes&amp;#34;: true,
&amp;#34;routeBeginLatLon&amp;#34;: &amp;#34;52.457616,13.318392&amp;#34;,
&amp;#34;routeEndLatLon&amp;#34;: &amp;#34;52.454774,13.333554&amp;#34;,
&amp;#34;numberOfRoutes&amp;#34;: 3
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;speed-files&#34;&gt;Speed-files&lt;/h3&gt;
&lt;p&gt;Below you can find a properties file which can be used during the import of OSM data
in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the
option &lt;code&gt;--osm-speeds-file &amp;lt;FILE&amp;gt;&lt;/code&gt;. In the speed properties file, for each way type a speed value can
be defined, according to the OSM
&lt;a href=&#34;http://wiki.openstreetmap.org/wiki/Key:highway&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
&lt;code&gt;highway&lt;/code&gt;
&lt;/a&gt;
key.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# the unit the speed values are defined in [kmh, ms]
speed.unit = kmh
# the default speed for all way types which are not defined here
speed.default = 30
# autobahn
highway.motorway = 130
highway.motorway_link = 70
# bundesstrasse (germany)
highway.trunk = 70
highway.trunk_link = 65
# linking bigger town
highway.primary = 65
highway.primary_link = 60
# linking towns &amp;#43; villages
highway.secondary = 60
highway.secondary_link = 50
#streets without middle line separation
highway.tertiary = 50
highway.tertiary_link = 40
highway.residential = 30
#special roads
highway.living_street = 5
highway.service = 20
# unclassified roads
highway.unclassified = 30
highway.road = 20
# forest tracks
highway.track 15
&lt;/code&gt;&lt;/pre&gt;
</description>
</item>
<item>
<title>Additional Scenario Configuration</title>
<link>https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/</link>
<pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
<guid>https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/</guid>
<description>&lt;p&gt;This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC.
We will continue with the tutorial-style explanations following up on the Steglitz-example from the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/scenario_convert/&#34;&gt;
previous chapter
&lt;/a&gt;
. For more detailed explanations of the configurations have a
look at
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/&#34;&gt;
this chapter
&lt;/a&gt;
.&lt;br&gt;
If you already played with the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/tutorials/barnim_basic/&#34;&gt;
Barnim
&lt;/a&gt;
-tutorial you probably noticed, that it contains far
more folders in the scenario structure compared to the Steglitz example. Those additional directories contain
configurations for various simulators.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ Barnim
├─ application
├─ cell
├─ environment
├─ mapping
├─ ns3
├─ output
├─ sns
├─ sumo
└─ scenario_config.json .................. Basic configuration of the simulation scenario
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;let-the-cars-loose&#34;&gt;Let the cars loose&lt;/h2&gt;
&lt;p&gt;As a starting point we&amp;rsquo;ll look at the scenario that we created using this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes
--route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We&amp;rsquo;ll end up with a folder looking like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ steglitz
├─ application
| └─ steglitz.db
├─ mapping
| └─ mapping_config.json
├─ sumo
| ├─ steglitz.net.xml
| └─ steglitz.sumocfg
└─ scenario_config.json .................. Basic configuration of the simulation scenario
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you have a look in the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz_mapping_config.json&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
mapping_config.json
&lt;/a&gt;
,
you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this
file as a blueprint for your own scenario, have a look
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/#applications-and-mapping&#34;&gt;
here
&lt;/a&gt;
to get more details on possible adaptions.&lt;br&gt;
Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
follow.&lt;/p&gt;
&lt;video controls &gt;
&lt;source src=&#34;../images/steglitz_routes.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;h2 id=&#34;communication-simulators-cell-ns3-omnetpp-sns&#34;&gt;Communication Simulators (cell, ns3, omnetpp, sns)&lt;/h2&gt;
&lt;p&gt;We won&amp;rsquo;t implement any functionality for the steglitz example here but rather have a look at the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/tutorials/barnim_basic/&#34;&gt;
Barnim
&lt;/a&gt;
-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
communication simulators are activated:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
&amp;quot;cell&amp;quot;: false,
&amp;quot;omnetpp&amp;quot;: false,
&amp;quot;ns3&amp;quot;: false,
&amp;quot;sns&amp;quot;: true
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Our
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/tutorials/&#34;&gt;
tutorials
&lt;/a&gt;
and
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/tutorials/additional_examples/&#34;&gt;
additional examples
&lt;/a&gt;
demonstrate use cases for
communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
recommend copying the configuration-files for the simulator you are going to use from the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/tutorials/barnim_basic/&#34;&gt;
Barnim scenario
&lt;/a&gt;
. It
contains the most complete configurations and is well maintained.&lt;br&gt;
If you are an expert with one of the external network simulators (
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;
ns3
&lt;/a&gt;
,
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;
OMNeT++
&lt;/a&gt;
) the Barnim scenario will also give
you an overview on how to configure those.&lt;/p&gt;
&lt;h2 id=&#34;other-simulators&#34;&gt;Other Simulators&lt;/h2&gt;
&lt;p&gt;Here we&amp;rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the &lt;code&gt;Event Server&lt;/code&gt; and the
&lt;code&gt;Battery Simulator&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;event-server&#34;&gt;Event server&lt;/h3&gt;
&lt;p&gt;The event server can be used to emit events to vehicles inside it&amp;rsquo;s predefined borders. In the Barnim scenario
an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.&lt;br&gt;
Every defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look
at the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/eventserver_config.json&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
eventserver_config.json
&lt;/a&gt;
to see how this can be
configured. If you want to use the event server make sure to have it enabled in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;battery&#34;&gt;Battery&lt;/h3&gt;
&lt;p&gt;The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can
dynamically load your own battery, vehicle and environment models. Have a look a the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/battery_config.json&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;
battery_config.json
&lt;/a&gt;
, taken from the Barnim scenario.
The three models used are included with Eclipse MOSAIC and you can freely use them.&lt;/p&gt;
&lt;h2 id=&#34;output&#34;&gt;Output&lt;/h2&gt;
&lt;p&gt;There are various options to generate output results of your simulations (see the
&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/visualization/filevis/&#34;&gt;
visualization chapter
&lt;/a&gt;
).&lt;/p&gt;
&lt;p&gt;The first step is to create a file called &lt;code&gt;output_config.xml&lt;/code&gt; in a new directory called &lt;code&gt;output&lt;/code&gt;.
If you used the scenario-convert tool the file should be generated automatically.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-plaintext&#34;&gt;└─ steglitz
├─ application
| └─ steglitz.db
├─ mapping
| └─ mapping_config.json
├─ output
| └─ output_config.xml
├─ sumo
| ├─ steglitz.net.xml
| └─ steglitz.sumocfg
└─ scenario_config.json .................. Basic configuration of the simulation scenario
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example configuration for output generation can be taken from the example scenarios from the tutorials section.&lt;/p&gt;
&lt;p&gt;Next make sure the visualization federate is activated in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
&lt;!--
```xml
&lt;!-- Visualization -- &gt;
&lt;federate id=&#34;output&#34; active=&#34;true&#34;/&gt;
```
Now we have to configure the statistics visualizer itself. This [visualizer_config.xml](/docs/building_scenarios/files/steglitz_visualizer_config.xml) contains the basic
configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please
refer to [statistics visualizer](/docs/visualization/statistics).
Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called
`AverageVehicleTravelTime.csv` in a directory called `StatisticsVisualizer`:
```csv
group;group-value;total;
Car;186.369;336;
```
This tells us that there was a total amount of 336 vehicles of the type `Car` in the simulation, which traveled
for 186.369 seconds on average.
--&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
After this small, hands-on introduction to visualizers you should know where to configure them and after some additional
reading, you should be able to configure different types of visualizers for your use-cases.&lt;/p&gt;
</description>
</item>
</channel>
</rss>