Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/tests/complex/scenario_generation/cross/RiLSA1/runner.py
169715 views
1
#!/usr/bin/env python
2
# -*- coding: utf-8 -*-
3
# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
4
# Copyright (C) 2012-2025 German Aerospace Center (DLR) and others.
5
# This program and the accompanying materials are made available under the
6
# terms of the Eclipse Public License 2.0 which is available at
7
# https://www.eclipse.org/legal/epl-2.0/
8
# This Source Code may also be made available under the following Secondary
9
# Licenses when the conditions for such availability set forth in the Eclipse
10
# Public License 2.0 are satisfied: GNU General Public License, version 2
11
# or later which is available at
12
# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
13
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
14
15
# @file runner.py
16
# @author Daniel Krajzewicz
17
# @date 2013-10-23
18
19
# import osm network
20
21
import sys
22
import os
23
SUMO_HOME = os.environ.get('SUMO_HOME',
24
os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..'))
25
sys.path.append(os.path.join(SUMO_HOME, 'tools'))
26
27
import sumolib.net.generator.cross as generator # noqa
28
from sumolib.net.generator.network import Lane, Edge # noqa
29
from sumolib.net.generator.demand import Demand, Stream # noqa
30
31
defaultEdge = Edge(numLanes=1, maxSpeed=13.89)
32
defaultEdge.addSplit(100, 1)
33
defaultEdge.lanes = [Lane(dirs="rs"), Lane(dirs="l")]
34
net = generator.cross(None, defaultEdge)
35
net.build()
36
37
38
flows = [
39
["nm", [
40
["ms", 159, 9],
41
["me", 59, 9],
42
["mw", 64, 12]
43
]],
44
45
["wm", [
46
["me", 708, 10],
47
["mn", 80, 14],
48
["ms", 130, 2]
49
]],
50
51
["em", [
52
["mw", 571, 10],
53
["mn", 57, 9],
54
["ms", 47, 3]
55
]],
56
57
["sm", [
58
["mn", 154, 2],
59
["me", 49, 2],
60
["mw", 92, 2]
61
]]
62
63
]
64
65
66
demand = Demand()
67
for f in flows:
68
for rel in f[1]:
69
prob = rel[2] / 100.
70
iprob = 1. - prob
71
demand.addStream(
72
# Stream(None, rel[1], f[0], rel[0], {prob: "lkw", iprob: "pkw"}))
73
Stream(None, 0, 3600, 400, "from", "to", {prob: "lkw", iprob: "pkw"}))
74
# demand.build(0, 3600, 3600, "net.net.xml")
75
76