<!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="">

  
  <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/building_scenarios/">

  


  
  
  
  <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://cdnjs.cloudflare.com/ajax/libs/mathjax/3.1.0/es5/tex-chtml.min.js" integrity="sha512-uwL1UtpYdWra2iqJlAW8Ts0s9Os6IxWLDJDF/BnWdhDmT7DEMFba3GPsFwmV3QiTNcUyl2GB5vsgycB/MOvo9g==" 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="alternate" href="/mosaic/docs/building_scenarios/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
  

  <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/building_scenarios/">

  
  
  
  
  
  
  
    
    
  
  
  <meta property="twitter:card" content="summary">
  
  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
  <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/building_scenarios/">
  <meta property="og:title" content="Simulation Scenarios | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
  <meta property="og:description" content=""><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="og:updated_time" content="2019-05-05T00:00:00&#43;01:00">
  

  




  


  





  <title>Simulation Scenarios | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>

</head>

<body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-building_scenarios ">

  <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-10 col-md-3">
          <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg)"></div>
        </div>
        <div class="col-2 col-md-4 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 style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></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 Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></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/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="docs container">
  <div class="row flex-xl-nowrap">
    <div class="docs-sidebar col-12 col-md-3 col-xl-3">
      





  
    
  





<div class="docs-version">
  
  
  
  <a class="" data-bs-toggle="tooltip" data-bs-placement="bottom" title="The documentation corresponds to the latest version of Eclipse MOSAIC 20.1-SNAPSHOT." href="https://github.com/eclipse/mosaic">
    <i class="fab fa-github"></i>&nbsp;Eclipse MOSAIC 20.1-SNAPSHOT
  </a>
</div>

<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>
      
      <li >
        <a href="/mosaic/docs/getting_started/results/">Simulation Results</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 Output</a>
      </li>
      
      <li >
        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</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/application_simulator/">Application Simulator</a>
      </li>
      
      <li >
        <a href="/mosaic/docs/simulators/traffic_simulator_sumo/">Traffic - Eclipse SUMO</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/environment_simulator/">Environment Simulator</a>
      </li>
      
      <li >
        <a href="/mosaic/docs/simulators/battery_simulator/">Battery Simulator</a>
      </li>
      
      <li >
        <a href="/mosaic/docs/simulators/vms_simulator/">VMS 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 class="active">
        <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>
  
  <div class="docs-toc-item">
    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
    <ul class="nav docs-sidenav">
      
      <li >
        <a href="/mosaic/docs/api_docs/">Javadoc</a>
      </li>
      
    </ul>
    

  </div>
  
  
</nav>

    </div>

    
    <div class="docs-toc d-none d-xl-block col-xl-2">
      <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="#main-configuration">Main Configuration</a></li>
    <li><a href="#traffic-simulator-configuration">Traffic Simulator Configuration</a></li>
    <li><a href="#applications-and-mapping">Applications and Mapping</a>
      <ul>
        <li><a href="#vehicles">Vehicles</a></li>
        <li><a href="#traffic-lights">Traffic lights</a></li>
      </ul>
    </li>
    <li><a href="#communication-simulator">Communication Simulator</a></li>
  </ul>
</nav>

      
    </div>
    

    <style>
      @media (min-width:1140px) {
        .docs-sidebar {
          flex: 0 1 320px;
        }
        .docs-toc {
          flex: 0 1 280px;
        }
        main.docs-content.no-docs-toc {
          padding-bottom: 0 !important;
          max-width: calc(100% - 320px) !important;
          flex: 0 1 calc(100% - 320px);
          width: 100%;
        }
        main.docs-content {
          padding-bottom: 0 !important;
          max-width: calc(100% - 600px) !important;
          flex: 0 1 calc(100% - 600px);
          width: 100%;
        }
      }
      @media (max-width: 770px) {
        main.docs-content {
          max-width: 100% !important;
          width: 100%;
        }
      }
      @media (min-width: 771px) and(max-width: 1139px) {
        main.docs-content.no-docs-toc {
          padding-bottom: 0 !important;
          max-width: calc(100% - 320px) !important;
          width: 100%;
        }
      }
    </style>
    <main class="docs-content col-12 col-md-9 col-xl-auto py-md-3 pl-md-4" role="main">

      <article class="article">

        <div class="docs-article-container">
          <h1>Simulation Scenarios</h1>

          <div class="article-style">
            <p>This section provides information on creating own simulation scenarios. A scenario is generally a
folder structure that reflects the different components usually found in a simulation. Each of the folders
contains various configuration files which in total describe the simulation setup, including
the movements of the vehicles, the definition of the road network, communication properties, and the like.</p>
<p>The following file structure shows the minimum setup of a typical simulation scenario in Eclipse MOSAIC:</p>
<pre><code class="language-FOLDER">└─ &lt;scenarioName&gt;
   ├─ application
   |  └─ &lt;scenarioName&gt;.db................ Scenario database file
   ├─ mapping
   |  └─ mapping_config.json ............. Mapping configuration file
   ├─ sumo
   |  └─ &lt;scenarioName&gt;.net.xml .......... SUMO network file
   |  └─ &lt;scenarioName&gt;.sumocfg .......... SUMO configuration file
   └─ scenario_config.json ............... Basic configuration of the simulation scenario
</code></pre>
<p>In addition to those files, each simulator need to be provided with their custom configuration files.</p>
<h2 id="main-configuration">Main Configuration</h2>
<p>The main configuration file of a scenario is <code>scenario_config.json</code>. In this file basic properties are configured, such as the name of the scenario, the random seed, and activated simulators. Such a file looks like the following:</p>
<pre><code class="language-json">{
    &quot;simulation&quot;: {
        &quot;id&quot;: &quot;Barnim&quot;,
        &quot;duration&quot;: &quot;1000s&quot;,
        &quot;randomSeed&quot;: 268965854,
        &quot;projection&quot;: {
            &quot;centerCoordinates&quot;: {
                &quot;latitude&quot;: 52.511289,
                &quot;longitude&quot;: 13.3167457
            },
            &quot;cartesianOffset&quot;: {
                &quot;x&quot;: -385769.05,
                &quot;y&quot;: -5819239.29
            }
        },
        &quot;network&quot;: {
            &quot;netMask&quot;: &quot;255.255.0.0&quot;,
            &quot;vehicleNet&quot;: &quot;10.1.0.0&quot;,
            &quot;rsuNet&quot;: &quot;10.2.0.0&quot;,
            &quot;tlNet&quot;: &quot;10.3.0.0&quot;,
            &quot;csNet&quot;: &quot;10.4.0.0&quot;,
            &quot;serverNet&quot;: &quot;10.5.0.0&quot;,
            &quot;tmcNet&quot;: &quot;10.6.0.0&quot;
        }
    },
    &quot;federates&quot;: {
        &quot;application&quot;: true,
        &quot;environment&quot;: false,
        &quot;cell&quot;: false,
        &quot;ns3&quot;: false,
        &quot;omnetpp&quot;: false,
        &quot;sns&quot;: false,
        &quot;sumo&quot;: true,
        &quot;visualizer&quot;: true
    }
}
</code></pre>
<p>The following fields needs to be configured:</p>
<ul>
<li><strong><code>id</code></strong> - The name of the scenario</li>
<li><strong><code>duration</code></strong> - The duration of the simulation in seconds.</li>
<li><strong><code>randomSeed</code></strong> - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken.</li>
<li><strong><code>projection</code></strong> - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting
here is crucial to get correct results that map to real world coordinates so the simulation results can be visualized in some way.
The center coordinate will be used to determine the correct UTM zone, the <code>cartesianOffset</code> can be determined by having a look at the trafﬁc simulators network ﬁle,
e.g. SUMOs <code>*.net.xml</code> contains this information in the <code>netOffset</code> attribute of the location tag.</li>
<li><strong><code>network</code></strong> - Within this config the address resolution scheme is speciﬁed. The subnets for all unit types are described here.
Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address
space would be to small to provide enough addresses. In such cases, the <code>netMask</code> and all <code>subnets</code> have to be configured accordingly.</li>
<li>Last but not least, the <strong><code>federate</code></strong> tags define which simulators are active in the simulation.</li>
</ul>
<h2 id="traffic-simulator-configuration">Traffic Simulator Configuration</h2>
<p>The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. <code>sumo</code> .
For example, the <code>&lt;scenarioName&gt;.sumocfg</code> describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:</p>
<pre><code class="language-xml">&lt;configuration&gt;
    &lt;input&gt;
        &lt;net-file value=&quot;MyScenario.net.xml&quot; /&gt;
        &lt;route-files value=&quot;MyScenario.rou.xml&quot; /&gt;
    &lt;/input&gt;
&lt;/configuration&gt;
</code></pre>
<p>While the <code>*.net.xml</code> is a mandatory file to be placed within the <code>sumo</code> directory, the <code>*.rou.xml</code> is automatically generated
by the SumoAmbassador when the simulation is started. More information on the configuration of SUMO can be found 
<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#configuration">here</a>.</p>
<h2 id="applications-and-mapping">Applications and Mapping</h2>
<h3 id="vehicles">Vehicles</h3>
<p>Usually you want the simulated vehicles to be equipped with some kind of applications that influence the
vehicle&rsquo;s behavior. To do that you copy the jar files of your applications to the folder <code>&lt;scenarioName&gt;/application</code> .
Having the applications in place you will have to create a <code>mapping_config.json</code> file in the folder <code>&lt;scenarioName&gt;/mapping</code> .</p>
<p>The following file would spawn 1 vehicle every five seconds (720 veh/hour divided by 3600 sec) until it reaches the max number of vehicles: 500. All the vehicles would be equipped with an application sending CA-messages periodically.</p>
<pre><code class="language-json">{
    &quot;prototypes&quot;:[
        {
            &quot;name&quot;: &quot;Car&quot;,
            &quot;accel&quot;: 2.6,
            &quot;decel&quot;: 4.5,
            &quot;maxSpeed&quot;: 80.0,
            &quot;applications&quot;: [
                &quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp&quot;
            ]
        }
    ],
    &quot;vehicles&quot;:[
        {
            &quot;startingTime&quot;: 0.0,
            &quot;targetFlow&quot;: 720,
            &quot;maxNumberVehicles&quot;: 500,
            &quot;route&quot;: &quot;3&quot;,
            &quot;types&quot;: [ { &quot;name&quot;: &quot;Car&quot; } ]
        }
    ]
}
</code></pre>
<h3 id="traffic-lights">Traffic lights</h3>
<p>If you want to simulate traffic lights equipped with applications, traffic lights should be defined in the simulator specific configuration file and also added to the mapping configuration file. The applications can be equipped by explicitly specifying them as &ldquo;applications&rdquo;</p>
<pre><code class="language-json">{
    &quot;trafficLights&quot;: [
        {
            &quot;tlGroupId&quot;: &quot;Bismarkstr_Krummestr&quot;,
            &quot;applications&quot;: [
                &quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&quot;
            ]
        }
    ]
}
</code></pre>
<p>or by referring to previously defined prototypes:</p>
<pre><code class="language-json">{
    &quot;prototypes&quot;:[
        {
            &quot;name&quot;: &quot;Car&quot;,
            &quot;accel&quot;: 2.6,
            &quot;decel&quot;: 4.5,
            &quot;maxSpeed&quot;: 80.0,
            &quot;applications&quot;: [
                &quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp&quot;
            ]
        },
        {
            &quot;name&quot;: &quot;TrafficLight&quot;,
            &quot;applications&quot;: [
                &quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&quot;
            ]
        }
    ],
    &quot;vehicles&quot;:[
        {
            &quot;startingTime&quot;: 0.0,
            &quot;targetFlow&quot;: 720,
            &quot;maxNumberVehicles&quot;: 500,
            &quot;route&quot;: &quot;3&quot;,
            &quot;types&quot;: [ { &quot;name&quot;: &quot;Car&quot; } ]
        }
    ],
    &quot;trafficLights&quot;: [
        {
            &quot;tlGroupId&quot;: &quot;Bismarkstr_Krummestr&quot;,
            &quot;name&quot;: &quot;TrafficLight&quot;
        }
    ]
}
</code></pre>
<p>Please note that traffic light name and traffic light itself in the mapping file stand for a traffic light group controlling a whole junction. Traffic light group can consist of many individual traffic lights controlling an exact lane. The value of the &ldquo;tlGroupId&rdquo; key MUST coincide with the name of the traffic light group in the traffic simulator related configuration file (with tlLogic id for SUMO and with junction id for Phabmacs).</p>
<p>For SUMO, the description of traffic light groups and their programs can be found in <code>&lt;scenarioname&gt;.net.xml</code>:</p>
<pre><code class="language-xml">&lt;tlLogic id=&quot;26704448&quot; type=&quot;static&quot; programID=&quot;1&quot; offset=&quot;0&quot;&gt;
    &lt;phase duration=&quot;39&quot; state=&quot;GGrG&quot;/&gt;
    &lt;phase duration=&quot;6&quot; state=&quot;yyry&quot;/&gt;
    &lt;phase duration=&quot;39&quot; state=&quot;rrGG&quot;/&gt;
    &lt;phase duration=&quot;6&quot; state=&quot;rryy&quot;/&gt;
&lt;/tlLogic&gt;
</code></pre>
<p>Corresponding <code>mapping_config.json</code>:</p>
<pre><code class="language-json">{
    ...
    &quot;trafficLights&quot;: [
        {
            &quot;tlGroupId&quot;: &quot;26704448&quot;,
            &quot;name&quot;: &quot;TrafficLight&quot;
        }
    ]
}
</code></pre>
<p>More information on the mapping configuration can be found 
<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#configuration">here</a>.</p>
<p>For more information about how SUMO traffic lights work please refer to 
<a href="https://sumo.dlr.de/docs/Simulation/Traffic_Lights.html" target="_blank" rel="noopener">SUMO Traffic Lights</a>.</p>
<!--
For Phabmacs, one should create a separate configuration file containing the description of traffic light groups and traffic light programs. 

mapping_config.json:

```json
{
    ...
    "trafficLights": [
        {
            "tlGroupId": "Bismarkstr_Krummestr",
            "name": "TrafficLight"
        }
    ]
}
```

phabmacs_config.json:

```json
{
    ...
    "ttlFile":"berlinTrafficLights.ttl.json",
    ...
}
```

An example of how the traffic light configuration can look like in berlinTrafficLights.ttl.json:

```json
{
    "programs": [
        {
            "id": "default",
            "phases": [
                {
                    "id": "0",
                    "duration": 10,
                    "groupStates": [
                        "green", "red", "green", "red"
                    ]
                }, 
                {
                    "id": "1",
                    "duration": 15,
                    "groupStates": [
                        "red", "green", "red", "green" 
                    ]
                }
            ],
            "transitions": [
                {
                    "from": "0",
                    "to": "1",
                    "yellowPhaseDuration": 3,
                    "allRedPhaseDuration": 3,
                    "redYellowPhaseDuration": 1
                },
                {
                    "from": "1",
                    "to": "0",
                    "yellowPhaseDuration": 3,
                    "allRedPhaseDuration": 6,
                    "redYellowPhaseDuration": 1
                }
            ]
        }
        
    ],
    "junctions": [
        {
            "id": "Bismarkstr_Krummestr",
            "signalGroups": [
                {
                    "id": "K1",
                    "tlLocation":{
                        "latitude": 52.51187173469569,
                        "longitude": 13.309426296977083
                    }
        
                },
                {
                    "id": "K2",
                    "tlLocation":{
                        "latitude": 52.511666041314484,
                        "longitude": 13.3092408198885
                    }
                },
                {
                    "id": "K3",
                    "tlLocation":{
                        "latitude": 52.51155112036543,
                        "longitude": 13.30933672655086
                    }
                },
                {
                    "id": "K4",
                    "tlLocation":{
                        "latitude": 52.51200251720905, 
                        "longitude": 13.30936414260184, 
                        "heading": 180.0
                    },
                    "lanes": [ 0 ]
                }
            ],
            "availablePrograms": [
                "default"
            ]
        }
    ]
}
```
-->
<p>The <code>application</code> folder furthermore needs a generated database file <code>&lt;scenarioName&gt;.db</code> . This database file
contains information about the road network (road topology) and all routes the vehicles can drive on. This file
is usually generated by the tool <code>scenario-convert</code>, which is described 
<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/">here</a> in detail.</p>
<h2 id="communication-simulator">Communication Simulator</h2>
<p>The configuration of the communication parameters are usually not dependent from the location of the road network. Therefore,
most of the required files can be extracted from other scenarios, such 
<a href="https://www.eclipse.org/mosaic/tutorials/barnim_basic/">Barnim</a> or 
<a href="https://www.eclipse.org/mosaic/tutorials/tiergarten/">Tiergarten</a>.
Depending on the simulator you will need to configure the geographic extend of the simulation
area. You can ﬁnd that data in the trafﬁc simulators network file, e.g. SUMOs <code>*.net.xml</code> contains this
information in the <code>convBoundary</code> attribute of the location tag.</p>
<ul>
<li>For <strong>OMNeT++</strong>, it concerns the values of <code>constraintArea</code> in the <code>omnetpp.ini</code></li>
<li>For the <strong>Eclipse MOSAIC Cell</strong> simulator, the expansions do not need to be conﬁgured directly. However, the areas
of the conﬁgured regions (in <code>regions.json</code>) have to be in line with the scenario location.</li>
<li>The <strong>SNS</strong> also comes without an additional expansion deﬁnition.</li>
</ul>
<p>Further information on the communication simulators can be found in:
<br>
<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/">Eclipse MOSAIC SNS</a>
<br>
<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/">Eclipse MOSAIC Cell</a>
<br>
<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">OMNeT++</a>
<br>
<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">ns-3</a></p>

          </div>

          



          
          <div class="article-widget">
            
<div class="post-nav prev-next-pages col-12">
  <div class="row">
    <div class="post-nav-item col-6">
      
        
      
    </div>

    <div class="post-nav-item col-6 align-self-end">
      
        
          
          
          
          
            
          
            
          
            
          
            
          
            
          
            
          
            
              
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
            
          
          
            
              <div class="meta-nav">Next</div>
              <a href="/mosaic/docs/building_scenarios/scenario_convert/" rel="prev">Scenario Convert</a>
          
        
      
    </div>
  </div>
</div>

          </div>
          
        </div>

        
          

          

          

          
  
  


        


        <footer class="site-footer">
  <div class="row">
  
    
      <div class="col-sm-4 mb-3 mb-md-0">
        <b>Eclipse MOSAIC</b>
        
          <ul>
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/download/" title="Download Eclipse MOSAIC" >
                    
                      Download Eclipse MOSAIC
                    
                  </a>
                </li>
              
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/docs" title="Documentation" >
                    
                      Documentation
                    
                  </a>
                </li>
              
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/tutorials" title="Tutorials" >
                    
                      Tutorials
                    
                  </a>
                </li>
              
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/community/#projects" title="Projects" >
                    
                      Projects
                    
                  </a>
                </li>
              
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/publications" title="Publications" >
                    
                      Publications
                    
                  </a>
                </li>
              
            
          </ul>
        
      </div>
    
  
    
      <div class="col-sm-4 mb-3 mb-md-0">
        <b>Community</b>
        
          <ul>
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/community" title="Eclipse MOSAIC Community" >
                    
                      Eclipse MOSAIC Community
                    
                  </a>
                </li>
              
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/contribution" title="How to contribute" >
                    
                      How to contribute
                    
                  </a>
                </li>
              
            
              
                
                
                  
                    
                  
                
                <li>
                  <a href="https://github.com/eclipse/mosaic" title="Github"  target="_blank" rel="noopener">
                    
                      Github
                    
                  </a>
                </li>
              
            
              
                
                
                  
                
                <li>
                  <a href="/mosaic/get_in_contact" title="Contact &amp; Mailing list" >
                    
                      Contact & Mailing list
                    
                  </a>
                </li>
              
            
          </ul>
        
      </div>
    
  
    
      <div class="col-sm-4 mb-3 mb-md-0">
        <b>Eclipse Foundation</b>
        
          <ul>
            
              
                
                
                  
                    
                  
                
                <li>
                  <a href="https://www.eclipse.org/" title="About Eclipse Foundation"  target="_blank" rel="noopener">
                    
                      About Eclipse Foundation
                    
                  </a>
                </li>
              
            
              
                
                
                  
                    
                  
                
                <li>
                  <a href="https://www.eclipse.org/legal/privacy.php" title="Privacy Policy"  target="_blank" rel="noopener">
                    
                      Privacy Policy
                    
                  </a>
                </li>
              
            
              
                
                
                  
                    
                  
                
                <li>
                  <a href="https://www.eclipse.org/legal/termsofuse.php" title="Website terms of use"  target="_blank" rel="noopener">
                    
                      Website terms of use
                    
                  </a>
                </li>
              
            
              
                
                
                  
                    
                  
                
                <li>
                  <a href="https://www.eclipse.org/legal/copyright.php" title="Copyright"  target="_blank" rel="noopener">
                    
                      Copyright
                    
                  </a>
                </li>
              
            
              
                
                
                  
                    
                  
                
                <li>
                  <a href="https://www.eclipse.org/legal" title="Legal"  target="_blank" rel="noopener">
                    
                      Legal
                    
                  </a>
                </li>
              
            
          </ul>
        
      </div>
    
  











  </div>
  <div class="row justify-content-center mt-3 position-relative">
    <p class="powered-by text-center font-italic mb-0 pb-0">
      Powered by the
      <a href="https://sourcethemes.com/academic/" target="_blank" rel="noopener">Academic theme</a> for
      <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a>.
      <br>
      Header image &#169; fanjianhua/ iStock
    </p>
    
  </div>
</footer>



      </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/popper.js/2.6.0/umd/popper.min.js" integrity="sha512-BmM0/BQlqh02wuK5Gz9yrbe7VyIVwOzD1o40yi1IsTjriX/NGF37NyXHfmFzIlMmoSIBXgqDiG1VNU6kB5dBbA==" 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-mhbv5DqBMgrWL+32MmsDOt/OAvqr/cHimk6B8y/bx/xS88MVkYGPiVv2ixKVrkywF2qHplNRUvFsAHUdxZ3Krg==" crossorigin="anonymous"></script>
    

    
    

    
    

    
    

    
    
    
    
    
    
    
    
    
      
    
    
    
    
    <script type="application/javascript" src="/mosaic/js/academic.min.0992ad8b8d033c3858bb90b03966346a.js"></script>

    

<script type="application/javascript" src="/mosaic/js/mosaic-wg-cards.js"></script>




    <script>
      var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
      tooltipTriggerList.map(function (tooltipTriggerEl) {
        return new window.bootstrap.Tooltip(tooltipTriggerEl)
      })
    </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>
