SUMO - Simulation of Urban MObility
SUMOXMLDefinitions.cpp
Go to the documentation of this file.
1 /****************************************************************************/
12 // Definitions of elements and attributes known by SUMO
13 /****************************************************************************/
14 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
15 // Copyright (C) 2002-2017 DLR (http://www.dlr.de/) and contributors
16 /****************************************************************************/
17 //
18 // This file is part of SUMO.
19 // SUMO is free software: you can redistribute it and/or modify
20 // it under the terms of the GNU General Public License as published by
21 // the Free Software Foundation, either version 3 of the License, or
22 // (at your option) any later version.
23 //
24 /****************************************************************************/
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #ifdef _MSC_VER
31 #include <windows_config.h>
32 #else
33 #include <config.h>
34 #endif
35 
36 #include <cassert>
37 #include "SUMOXMLDefinitions.h"
39 
40 #ifdef CHECK_MEMORY_LEAKS
41 #include <foreign/nvwa/debug_new.h>
42 #endif // CHECK_MEMORY_LEAKS
43 
44 
45 // ===========================================================================
46 // definitions
47 // ===========================================================================
48 
50  // Simulation elements
51  { "net", SUMO_TAG_NET },
52  { "edge", SUMO_TAG_EDGE },
53  { "lane", SUMO_TAG_LANE },
54  { "neigh", SUMO_TAG_NEIGH },
55  { "poi", SUMO_TAG_POI },
56  { "poly", SUMO_TAG_POLY },
57  { "junction", SUMO_TAG_JUNCTION },
58  { "restriction", SUMO_TAG_RESTRICTION },
59  { "e1Detector", SUMO_TAG_E1DETECTOR },
60  { "inductionLoop", SUMO_TAG_INDUCTION_LOOP },
61  { "e2Detector", SUMO_TAG_E2DETECTOR },
62  { "laneAreaDetector", SUMO_TAG_LANE_AREA_DETECTOR },
63  { "e3Detector", SUMO_TAG_E3DETECTOR },
64  { "entryExitDetector", SUMO_TAG_ENTRY_EXIT_DETECTOR },
65  { "edgeData", SUMO_TAG_MEANDATA_EDGE },
66  { "laneData", SUMO_TAG_MEANDATA_LANE },
67  { "detEntry", SUMO_TAG_DET_ENTRY },
68  { "detExit", SUMO_TAG_DET_EXIT },
69  { "edgeFollowDetector", SUMO_TAG_EDGEFOLLOWDETECTOR },
70  { "instantInductionLoop", SUMO_TAG_INSTANT_INDUCTION_LOOP },
71  { "variableSpeedSign", SUMO_TAG_VSS },
72  { "calibrator", SUMO_TAG_CALIBRATOR },
73  { "rerouter", SUMO_TAG_REROUTER },
74  { "busStop", SUMO_TAG_BUS_STOP },
75  { "trainStop", SUMO_TAG_TRAIN_STOP },
76  { "access", SUMO_TAG_ACCESS },
77  { "containerStop", SUMO_TAG_CONTAINER_STOP },
78  { "parkingArea", SUMO_TAG_PARKING_AREA },
79  { "space", SUMO_TAG_PARKING_SPACE },
80  { "chargingStation", SUMO_TAG_CHARGING_STATION },
81  { "vTypeProbe", SUMO_TAG_VTYPEPROBE },
82  { "routeProbe", SUMO_TAG_ROUTEPROBE },
83  { "routes", SUMO_TAG_ROUTES },
84  { "vehicle", SUMO_TAG_VEHICLE },
85  { "vType", SUMO_TAG_VTYPE },
86  { "route", SUMO_TAG_ROUTE },
87  { "request", SUMO_TAG_REQUEST },
88  { "source", SUMO_TAG_SOURCE },
89  { "taz", SUMO_TAG_TAZ },
90  { "tazSource", SUMO_TAG_TAZSOURCE },
91  { "tazSink", SUMO_TAG_TAZSINK },
92  { "trafficLight", SUMO_TAG_TRAFFIC_LIGHT },
93  { "tlLogic", SUMO_TAG_TLLOGIC },
94  { "phase", SUMO_TAG_PHASE },
95  { "trip", SUMO_TAG_TRIP },
96  { "flow", SUMO_TAG_FLOW },
97  { "step", SUMO_TAG_STEP },
98  { "interval", SUMO_TAG_INTERVAL },
99  { "timedEvent", SUMO_TAG_TIMEDEVENT },
100  { "fromEdge", SUMO_TAG_FROMEDGE },
101  { "toEdge", SUMO_TAG_TOEDGE },
102  { "sink", SUMO_TAG_SINK },
103  { "param", SUMO_TAG_PARAM },
104  { "WAUT", SUMO_TAG_WAUT },
105  { "wautSwitch", SUMO_TAG_WAUT_SWITCH },
106  { "wautJunction", SUMO_TAG_WAUT_JUNCTION },
107  { "segment", SUMO_TAG_SEGMENT },
108  { "delete", SUMO_TAG_DELETE },
109  { "stop", SUMO_TAG_STOP },
110  { "destProbReroute", SUMO_TAG_DEST_PROB_REROUTE },
111  { "closingReroute", SUMO_TAG_CLOSING_REROUTE },
112  { "closingLaneReroute", SUMO_TAG_CLOSING_LANE_REROUTE },
113  { "routeProbReroute", SUMO_TAG_ROUTE_PROB_REROUTE },
114  { "parkingAreaReroute", SUMO_TAG_PARKING_ZONE_REROUTE },
115  { "polygonType", SUMO_TAG_POLYTYPE },
116  { "connection", SUMO_TAG_CONNECTION },
117  { "prohibition", SUMO_TAG_PROHIBITION },
118  { "split", SUMO_TAG_SPLIT },
119  { "node", SUMO_TAG_NODE },
120  { "type", SUMO_TAG_TYPE },
121  { "detectorDefinition", SUMO_TAG_DETECTOR_DEFINITION },
122  { "routeDistribution", SUMO_TAG_ROUTE_DISTRIBUTION },
123  { "vTypeDistribution", SUMO_TAG_VTYPE_DISTRIBUTION },
124  { "vaporizer", SUMO_TAG_VAPORIZER },
125  { "roundabout", SUMO_TAG_ROUNDABOUT },
126  { "join", SUMO_TAG_JOIN },
127  { "joinExclude", SUMO_TAG_JOINEXCLUDE },
128  { "crossing", SUMO_TAG_CROSSING },
129  { "customShape", SUMO_TAG_CUSTOMSHAPE },
130  // OSM
131  { "way", SUMO_TAG_WAY },
132  { "nd", SUMO_TAG_ND },
133  { "tag", SUMO_TAG_TAG },
134  { "relation", SUMO_TAG_RELATION },
135  { "member", SUMO_TAG_MEMBER },
136  // View
137  { "viewsettings", SUMO_TAG_VIEWSETTINGS },
138  { "decal", SUMO_TAG_VIEWSETTINGS_DECAL },
139  { "light", SUMO_TAG_VIEWSETTINGS_LIGHT },
140  { "scheme", SUMO_TAG_VIEWSETTINGS_SCHEME },
141  { "opengl", SUMO_TAG_VIEWSETTINGS_OPENGL },
142  { "background", SUMO_TAG_VIEWSETTINGS_BACKGROUND },
143  { "edges", SUMO_TAG_VIEWSETTINGS_EDGES },
144  { "vehicles", SUMO_TAG_VIEWSETTINGS_VEHICLES },
145  { "persons", SUMO_TAG_VIEWSETTINGS_PERSONS },
146  { "containers", SUMO_TAG_VIEWSETTINGS_CONTAINERS },
147  { "junctions", SUMO_TAG_VIEWSETTINGS_JUNCTIONS },
148  { "additionals", SUMO_TAG_VIEWSETTINGS_ADDITIONALS },
149  { "pois", SUMO_TAG_VIEWSETTINGS_POIS },
150  { "polys", SUMO_TAG_VIEWSETTINGS_POLYS },
151  { "legend", SUMO_TAG_VIEWSETTINGS_LEGEND },
152  { "event", SUMO_TAG_VIEWSETTINGS_EVENT },
154  { "include", SUMO_TAG_INCLUDE },
155  { "delay", SUMO_TAG_DELAY },
156  { "viewport", SUMO_TAG_VIEWPORT },
157  { "snapshot", SUMO_TAG_SNAPSHOT },
158  { "breakpoints-file", SUMO_TAG_BREAKPOINTS_FILE },
159  { "location", SUMO_TAG_LOCATION },
160  { "colorScheme", SUMO_TAG_COLORSCHEME },
161  { "scalingScheme", SUMO_TAG_SCALINGSCHEME },
162  { "entry", SUMO_TAG_ENTRY },
163  { "vehicleTransfer", SUMO_TAG_VEHICLETRANSFER },
164  // Cars
165  { "carFollowing-IDM", SUMO_TAG_CF_IDM },
166  { "carFollowing-IDMM", SUMO_TAG_CF_IDMM },
167  { "carFollowing-Krauss", SUMO_TAG_CF_KRAUSS },
168  { "carFollowing-KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
169  { "carFollowing-KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
170  { "carFollowing-SmartSK", SUMO_TAG_CF_SMART_SK },
171  { "carFollowing-Daniel1", SUMO_TAG_CF_DANIEL1 },
172  { "carFollowing-PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
173  { "carFollowing-BKerner", SUMO_TAG_CF_BKERNER },
174  { "carFollowing-Wiedemann", SUMO_TAG_CF_WIEDEMANN },
175  // Person
176  { "person", SUMO_TAG_PERSON },
177  { "personTrip", SUMO_TAG_PERSONTRIP },
178  { "ride", SUMO_TAG_RIDE },
179  { "walk", SUMO_TAG_WALK },
180  // Transport
181  { "container", SUMO_TAG_CONTAINER },
182  { "transport", SUMO_TAG_TRANSPORT },
183  { "tranship", SUMO_TAG_TRANSHIP },
184  //Trajectories
185  { "trajectories", SUMO_TAG_TRAJECTORIES },
186  { "timestep", SUMO_TAG_TIMESTEP },
187  { "timeSlice", SUMO_TAG_TIMESLICE },
188  { "actorConfig", SUMO_TAG_ACTORCONFIG },
189  { "motionState", SUMO_TAG_MOTIONSTATE },
190  { "odPair", SUMO_TAG_OD_PAIR },
191  // ActivityGen statistics file
192  { "general", AGEN_TAG_GENERAL },
193  { "street", AGEN_TAG_STREET },
194  { "workHours", AGEN_TAG_WORKHOURS },
195  { "opening", AGEN_TAG_OPENING },
196  { "closing", AGEN_TAG_CLOSING },
197  { "schools", AGEN_TAG_SCHOOLS },
198  { "school", AGEN_TAG_SCHOOL },
199  { "busStation", AGEN_TAG_BUSSTATION },
200  { "busLine", AGEN_TAG_BUSLINE },
201  { "stations", AGEN_TAG_STATIONS },
202  { "revStations", AGEN_TAG_REV_STATIONS },
203  { "station", AGEN_TAG_STATION },
204  { "frequency", AGEN_TAG_FREQUENCY },
205  { "population", AGEN_TAG_POPULATION },
206  { "bracket", AGEN_TAG_BRACKET },
207  { "cityGates", AGEN_TAG_CITYGATES },
208  { "entrance", AGEN_TAG_ENTRANCE },
209  { "parameters", AGEN_TAG_PARAM },
210  // Other
211  { "", SUMO_TAG_NOTHING } //< must be the last one
212 };
213 
214 
216  // Edge
217  { "id", SUMO_ATTR_ID },
218  { "refId", SUMO_ATTR_REFID },
219  { "name", SUMO_ATTR_NAME },
220  { "type", SUMO_ATTR_TYPE },
221  { "priority", SUMO_ATTR_PRIORITY },
222  { "numLanes", SUMO_ATTR_NUMLANES },
223  { "speed", SUMO_ATTR_SPEED },
224  { "oneway", SUMO_ATTR_ONEWAY },
225  { "width", SUMO_ATTR_WIDTH },
226  { "sidewalkWidth", SUMO_ATTR_SIDEWALKWIDTH },
227  { "bikeLaneWidth", SUMO_ATTR_BIKELANEWIDTH },
228  { "remove", SUMO_ATTR_REMOVE },
229  { "length", SUMO_ATTR_LENGTH },
230  // Split
231  { "idBefore", SUMO_ATTR_ID_BEFORE },
232  { "idAfter", SUMO_ATTR_ID_AFTER },
233  // Positions
234  { "x", SUMO_ATTR_X },
235  { "y", SUMO_ATTR_Y },
236  { "z", SUMO_ATTR_Z },
237  { "centerX", SUMO_ATTR_CENTER_X },
238  { "centerY", SUMO_ATTR_CENTER_Y },
239  { "centerZ", SUMO_ATTR_CENTER_Z },
240 
241  { "key", SUMO_ATTR_KEY },
242  { "requestSize", SUMO_ATTR_REQUESTSIZE },
243  { "request", SUMO_ATTR_REQUEST },
244  { "response", SUMO_ATTR_RESPONSE },
245  { "programID", SUMO_ATTR_PROGRAMID },
246  { "offset", SUMO_ATTR_OFFSET },
247  { "endOffset", SUMO_ATTR_ENDOFFSET },
248  { "incLanes", SUMO_ATTR_INCLANES },
249  { "intLanes", SUMO_ATTR_INTLANES },
250 
251  { "weight", SUMO_ATTR_WEIGHT },
252  { "node", SUMO_ATTR_NODE },
253  { "edge", SUMO_ATTR_EDGE },
254  { "edges", SUMO_ATTR_EDGES },
255  // Vehicle
256  { "depart", SUMO_ATTR_DEPART },
257  { "departLane", SUMO_ATTR_DEPARTLANE },
258  { "departPos", SUMO_ATTR_DEPARTPOS },
259  { "departPosLat", SUMO_ATTR_DEPARTPOS_LAT },
260  { "departSpeed", SUMO_ATTR_DEPARTSPEED },
261  { "arrivalLane", SUMO_ATTR_ARRIVALLANE },
262  { "arrivalPos", SUMO_ATTR_ARRIVALPOS },
263  { "arrivalPosLat", SUMO_ATTR_ARRIVALPOS_LAT },
264  { "arrivalSpeed", SUMO_ATTR_ARRIVALSPEED },
265  { "route", SUMO_ATTR_ROUTE },
266  { "maxSpeed", SUMO_ATTR_MAXSPEED },
267  { "maxSpeedLat", SUMO_ATTR_MAXSPEED_LAT },
268  { "latAlignment", SUMO_ATTR_LATALIGNMENT },
269  { "minGapLat", SUMO_ATTR_MINGAP_LAT },
270  { "accel", SUMO_ATTR_ACCEL },
271  { "decel", SUMO_ATTR_DECEL },
272  { "vClass", SUMO_ATTR_VCLASS },
273  { "repno", SUMO_ATTR_REPNUMBER },
274  { "speedFactor", SUMO_ATTR_SPEEDFACTOR },
275  { "speedDev", SUMO_ATTR_SPEEDDEV },
276  { "laneChangeModel", SUMO_ATTR_LANE_CHANGE_MODEL },
277  { "carFollowModel", SUMO_ATTR_CAR_FOLLOW_MODEL },
278  { "minGap", SUMO_ATTR_MINGAP },
279  { "boardingDuration", SUMO_ATTR_BOARDING_DURATION },
280  { "loadingDuration", SUMO_ATTR_LOADING_DURATION },
281  // Charging Station
282  { "power", SUMO_ATTR_CHARGINGPOWER },
283  { "efficiency", SUMO_ATTR_EFFICIENCY },
284  { "chargeInTransit", SUMO_ATTR_CHARGEINTRANSIT },
285  { "chargeDelay", SUMO_ATTR_CHARGEDELAY},
286 
287  { "sigma", SUMO_ATTR_SIGMA },
288  { "tau", SUMO_ATTR_TAU },
289  { "tmp1", SUMO_ATTR_TMP1 },
290  { "tmp2", SUMO_ATTR_TMP2 },
291  { "tmp3", SUMO_ATTR_TMP3 },
292  { "tmp4", SUMO_ATTR_TMP4 },
293  { "tmp5", SUMO_ATTR_TMP5 },
294 
295  { "lcStrategic", SUMO_ATTR_LCA_STRATEGIC_PARAM },
296  { "lcCooperative", SUMO_ATTR_LCA_COOPERATIVE_PARAM },
297  { "lcSpeedGain", SUMO_ATTR_LCA_SPEEDGAIN_PARAM },
298  { "lcKeepRight", SUMO_ATTR_LCA_KEEPRIGHT_PARAM },
299  { "lcSublane", SUMO_ATTR_LCA_SUBLANE_PARAM },
300  { "lcPushy", SUMO_ATTR_LCA_PUSHY },
301  { "lcAssertive", SUMO_ATTR_LCA_ASSERTIVE },
302 
303  { "last", SUMO_ATTR_LAST },
304  { "cost", SUMO_ATTR_COST },
305  { "probability", SUMO_ATTR_PROB },
306  { "probabilities", SUMO_ATTR_PROBS },
307  { "routes", SUMO_ATTR_ROUTES },
308  { "vTypes", SUMO_ATTR_VTYPES },
309 
310  { "lane", SUMO_ATTR_LANE },
311  { "lanes", SUMO_ATTR_LANES },
312  { "from", SUMO_ATTR_FROM },
313  { "to", SUMO_ATTR_TO },
314  { "period", SUMO_ATTR_PERIOD },
315  { "fromTaz", SUMO_ATTR_FROM_TAZ },
316  { "toTaz", SUMO_ATTR_TO_TAZ },
317  { "reroute", SUMO_ATTR_REROUTE },
318  { "personCapacity", SUMO_ATTR_PERSON_CAPACITY },
319  { "containerCapacity", SUMO_ATTR_CONTAINER_CAPACITY },
320  { "personNumber", SUMO_ATTR_PERSON_NUMBER },
321  { "containerNumber", SUMO_ATTR_CONTAINER_NUMBER },
322  { "modes", SUMO_ATTR_MODES },
323  { "walkFactor", SUMO_ATTR_WALKFACTOR },
324 
325  { "function", SUMO_ATTR_FUNCTION },
326  { "pos", SUMO_ATTR_POSITION },
327  { "posLat", SUMO_ATTR_POSITION_LAT },
328  { "freq", SUMO_ATTR_FREQUENCY },
329  { "style", SUMO_ATTR_STYLE },
330  { "file", SUMO_ATTR_FILE },
331  { "junction", SUMO_ATTR_JUNCTION },
332  { "number", SUMO_ATTR_NUMBER },
333  { "duration", SUMO_ATTR_DURATION },
334  { "until", SUMO_ATTR_UNTIL },
335  { "routeProbe", SUMO_ATTR_ROUTEPROBE },
336  { "crossingEdges", SUMO_ATTR_CROSSING_EDGES },
337  // Traffic light & Nodes
338  { "time", SUMO_ATTR_TIME },
339  { "begin", SUMO_ATTR_BEGIN },
340  { "end", SUMO_ATTR_END },
341  { "tl", SUMO_ATTR_TLID },
342  { "tlType", SUMO_ATTR_TLTYPE },
343  { "linkIndex", SUMO_ATTR_TLLINKINDEX },
344  { "shape", SUMO_ATTR_SHAPE },
345  { "spreadType", SUMO_ATTR_SPREADTYPE },
346  { "radius", SUMO_ATTR_RADIUS },
347  { "customShape", SUMO_ATTR_CUSTOMSHAPE },
348  { "keepClear", SUMO_ATTR_KEEP_CLEAR },
349  { "color", SUMO_ATTR_COLOR },
350  { "dir", SUMO_ATTR_DIR },
351  { "state", SUMO_ATTR_STATE },
352  { "layer", SUMO_ATTR_LAYER },
353  { "fill", SUMO_ATTR_FILL },
354  { "prefix", SUMO_ATTR_PREFIX },
355  { "discard", SUMO_ATTR_DISCARD },
356 
357  { "fromLane", SUMO_ATTR_FROM_LANE },
358  { "toLane", SUMO_ATTR_TO_LANE },
359  { "dest", SUMO_ATTR_DEST },
360  { "source", SUMO_ATTR_SOURCE },
361  { "via", SUMO_ATTR_VIA },
362  { "nodes", SUMO_ATTR_NODES },
363  { "visibility", SUMO_ATTR_VISIBILITY_DISTANCE },
364 
365  { "minDur", SUMO_ATTR_MINDURATION },
366  { "maxDur", SUMO_ATTR_MAXDURATION },
367  { "foes", SUMO_ATTR_FOES },
368  // E2 detector
369  { "cont", SUMO_ATTR_CONT },
370  { "contPos", SUMO_ATTR_CONTPOS },
371  { "timeThreshold", SUMO_ATTR_HALTING_TIME_THRESHOLD },
372  { "speedThreshold", SUMO_ATTR_HALTING_SPEED_THRESHOLD },
373  { "jamThreshold", SUMO_ATTR_JAM_DIST_THRESHOLD },
374 
375  { "wautID", SUMO_ATTR_WAUT_ID },
376  { "junctionID", SUMO_ATTR_JUNCTION_ID },
377  { "procedure", SUMO_ATTR_PROCEDURE },
378  { "synchron", SUMO_ATTR_SYNCHRON },
379  { "refTime", SUMO_ATTR_REF_TIME },
380  { "startProg", SUMO_ATTR_START_PROG },
381  { "off", SUMO_ATTR_OFF },
382  { "friendlyPos", SUMO_ATTR_FRIENDLY_POS },
383  { "splitByType", SUMO_ATTR_SPLIT_VTYPE },
384  { "uncontrolled", SUMO_ATTR_UNCONTROLLED },
385  { "pass", SUMO_ATTR_PASS },
386  { "busStop", SUMO_ATTR_BUS_STOP },
387  { "containerStop", SUMO_ATTR_CONTAINER_STOP },
388  { "parkingArea", SUMO_ATTR_PARKING_AREA },
389  { "roadsideCapacity", SUMO_ATTR_ROADSIDE_CAPACITY },
390  { "chargingStation", SUMO_ATTR_CHARGING_STATION},
391  { "line", SUMO_ATTR_LINE },
392  { "lines", SUMO_ATTR_LINES },
393  { "value", SUMO_ATTR_VALUE },
394  { "prohibitor", SUMO_ATTR_PROHIBITOR },
395  { "prohibited", SUMO_ATTR_PROHIBITED },
396  { "allow", SUMO_ATTR_ALLOW },
397  { "disallow", SUMO_ATTR_DISALLOW },
398  { "prefer", SUMO_ATTR_PREFER },
399  { "controlledInner", SUMO_ATTR_CONTROLLED_INNER },
400  { "vehsPerHour", SUMO_ATTR_VEHSPERHOUR },
401  { "output", SUMO_ATTR_OUTPUT },
402  { "height", SUMO_ATTR_HEIGHT },
403  { "guiShape", SUMO_ATTR_GUISHAPE },
404  { "osgFile", SUMO_ATTR_OSGFILE },
405  { "imgFile", SUMO_ATTR_IMGFILE },
406  { "angle", SUMO_ATTR_ANGLE },
407  { "emissionClass", SUMO_ATTR_EMISSIONCLASS },
408  { "impatience", SUMO_ATTR_IMPATIENCE },
409  { "startPos", SUMO_ATTR_STARTPOS },
410  { "endPos", SUMO_ATTR_ENDPOS },
411  { "triggered", SUMO_ATTR_TRIGGERED },
412  { "containerTriggered", SUMO_ATTR_CONTAINER_TRIGGERED },
413  { "parking", SUMO_ATTR_PARKING },
414  { "expected", SUMO_ATTR_EXPECTED },
415  { "expectedContainers", SUMO_ATTR_EXPECTED_CONTAINERS },
416  { "index", SUMO_ATTR_INDEX },
417 
418  { "entering", SUMO_ATTR_ENTERING },
419  { "excludeEmpty", SUMO_ATTR_EXCLUDE_EMPTY },
420  { "withInternal", SUMO_ATTR_WITH_INTERNAL },
421  { "trackVehicles", SUMO_ATTR_TRACK_VEHICLES },
422  { "maxTraveltime", SUMO_ATTR_MAX_TRAVELTIME },
423  { "minSamples", SUMO_ATTR_MIN_SAMPLES },
424 
425  { "lon", SUMO_ATTR_LON },
426  { "lat", SUMO_ATTR_LAT },
427  { "geo", SUMO_ATTR_GEO },
428  { "k", SUMO_ATTR_K },
429  { "v", SUMO_ATTR_V },
430  { "ref", SUMO_ATTR_REF },
431  { "href", SUMO_ATTR_HREF },
432  { "zoom", SUMO_ATTR_ZOOM },
433  { "interpolated", SUMO_ATTR_INTERPOLATED },
434  { "threshold", SUMO_ATTR_THRESHOLD },
435 
436  { "netOffset", SUMO_ATTR_NET_OFFSET },
437  { "convBoundary", SUMO_ATTR_CONV_BOUNDARY },
438  { "origBoundary", SUMO_ATTR_ORIG_BOUNDARY },
439  { "projParameter", SUMO_ATTR_ORIG_PROJ },
440 
441  { "tauLast", SUMO_ATTR_CF_PWAGNER2009_TAULAST },
442  { "apProb", SUMO_ATTR_CF_PWAGNER2009_APPROB },
443  { "delta", SUMO_ATTR_CF_IDM_DELTA },
444  { "stepping", SUMO_ATTR_CF_IDM_STEPPING },
445  { "adaptFactor", SUMO_ATTR_CF_IDMM_ADAPT_FACTOR },
446  { "adaptTime", SUMO_ATTR_CF_IDMM_ADAPT_TIME },
447  { "phi", SUMO_ATTR_CF_KERNER_PHI },
448 
449  { "security", SUMO_ATTR_CF_WIEDEMANN_SECURITY },
450  { "estimation", SUMO_ATTR_CF_WIEDEMANN_ESTIMATION },
451 
452  { "generateWalks", SUMO_ATTR_GENERATE_WALKS },
453  { "actType", SUMO_ATTR_ACTTYPE },
454  { "slope", SUMO_ATTR_SLOPE },
455  { "version", SUMO_ATTR_VERSION },
456  { "junctionCornerDetail", SUMO_ATTR_CORNERDETAIL },
457  { "junctionLinkDetail", SUMO_ATTR_LINKDETAIL },
458  { "lefthand", SUMO_ATTR_LEFTHAND },
459 
460  { "actorConfig", SUMO_ATTR_ACTORCONFIG },
461  { "vehicle", SUMO_ATTR_VEHICLE },
462  { "startTime", SUMO_ATTR_STARTTIME },
463  { "vehicleClass", SUMO_ATTR_VEHICLECLASS },
464  { "fuel", SUMO_ATTR_FUEL },
465  { "acceleration", SUMO_ATTR_ACCELERATION },
466  { "amount", SUMO_ATTR_AMOUNT },
467  { "origin", SUMO_ATTR_ORIGIN },
468  { "destination", SUMO_ATTR_DESTINATION },
469 
470 #ifndef WIN32
471  { "commandPosix", SUMO_ATTR_COMMAND },
472 #else
473  { "commandWindows", SUMO_ATTR_COMMAND },
474 #endif
475 
476  // ActivityGen statistics file
477  { "inhabitants", AGEN_ATTR_INHABITANTS },
478  { "households", AGEN_ATTR_HOUSEHOLDS },
479  { "childrenAgeLimit", AGEN_ATTR_CHILDREN },
480  { "retirementAgeLimit", AGEN_ATTR_RETIREMENT },
481  { "carRate", AGEN_ATTR_CARS },
482  { "unemploymentRate", AGEN_ATTR_UNEMPLOYEMENT },
483  { "footDistanceLimit", AGEN_ATTR_MAX_FOOT_DIST },
484  { "incomingTraffic", AGEN_ATTR_IN_TRAFFIC },
485  { "incoming", AGEN_ATTR_INCOMING },
486  { "outgoingTraffic", AGEN_ATTR_OUT_TRAFFIC },
487  { "outgoing", AGEN_ATTR_OUTGOING },
488  { "population", AGEN_ATTR_POPULATION },
489  { "workPosition", AGEN_ATTR_OUT_WORKPOSITION },
490  { "hour", AGEN_ATTR_HOUR },
491  { "proportion", AGEN_ATTR_PROP },
492  { "capacity", AGEN_ATTR_CAPACITY },
493  { "opening", AGEN_ATTR_OPENING },
494  { "closing", AGEN_ATTR_CLOSING },
495  { "maxTripDuration", AGEN_ATTR_MAX_TRIP_DURATION },
496  { "rate", AGEN_ATTR_RATE },
497  { "beginAge", AGEN_ATTR_BEGINAGE },
498  { "endAge", AGEN_ATTR_ENDAGE },
499  { "peopleNbr", AGEN_ATTR_PEOPLENBR },
500  { "carPreference", AGEN_ATTR_CARPREF },
501  { "meanTimePerKmInCity", AGEN_ATTR_CITYSPEED },
502  { "freeTimeActivityRate", AGEN_ATTR_FREETIMERATE },
503  { "uniformRandomTraffic", AGEN_ATTR_UNI_RAND_TRAFFIC },
504  { "departureVariation", AGEN_ATTR_DEP_VARIATION },
505 
506  // netEdit
507  { "modificationStatusNotForPrinting", GNE_ATTR_MODIFICATION_STATUS },
508  { "shapeStartNotForPrinting", GNE_ATTR_SHAPE_START },
509  { "shapeEndNotForPrinting", GNE_ATTR_SHAPE_END },
510  { "blockMovement", GNE_ATTR_BLOCK_MOVEMENT },
511  { "parentOfAdditional", GNE_ATTR_PARENT },
512 
513  { "targetLanes", SUMO_ATTR_TARGETLANE },
514  { "crossing", SUMO_ATTR_CROSSING },
515 
516  { "xmlns:xsi", SUMO_ATTR_XMLNS },
517  { "xsi:noNamespaceSchemaLocation", SUMO_ATTR_SCHEMA_LOCATION },
518 
519  // Other
520  { "", SUMO_ATTR_NOTHING } //< must be the last one
521 };
522 
523 
525  {"traffic_light", NODETYPE_TRAFFIC_LIGHT},
526  {"traffic_light_unregulated", NODETYPE_TRAFFIC_LIGHT_NOJUNCTION},
527  {"traffic_light_right_on_red", NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED},
528  {"rail_signal", NODETYPE_RAIL_SIGNAL},
529  {"rail_crossing", NODETYPE_RAIL_CROSSING},
530  {"priority", NODETYPE_PRIORITY},
531  {"priority_stop", NODETYPE_PRIORITY_STOP},
532  {"right_before_left", NODETYPE_RIGHT_BEFORE_LEFT},
533  {"allway_stop", NODETYPE_ALLWAY_STOP},
534  {"zipper", NODETYPE_ZIPPER},
535  {"district", NODETYPE_DISTRICT},
536  {"unregulated", NODETYPE_NOJUNCTION},
537  {"internal", NODETYPE_INTERNAL},
538  {"dead_end", NODETYPE_DEAD_END},
539  {"DEAD_END", NODETYPE_DEAD_END_DEPRECATED},
540  {"unknown", NODETYPE_UNKNOWN} //< must be the last one
541 };
542 
543 
545  {"normal", EDGEFUNC_NORMAL},
546  {"connector", EDGEFUNC_CONNECTOR},
547  {"sink", EDGEFUNC_SINK},
548  {"source", EDGEFUNC_SOURCE},
549  {"crossing", EDGEFUNC_CROSSING},
550  {"walkingarea", EDGEFUNC_WALKINGAREA},
551 
552  {"internal", EDGEFUNC_INTERNAL} //< must be the last one
553 };
554 
555 
557  {"right", LANESPREAD_RIGHT }, // default
558  {"center", LANESPREAD_CENTER } //< must be the last one
559 };
560 
561 
563  { "G", LINKSTATE_TL_GREEN_MAJOR },
564  { "g", LINKSTATE_TL_GREEN_MINOR },
565  { "r", LINKSTATE_TL_RED },
566  { "u", LINKSTATE_TL_REDYELLOW },
567  { "Y", LINKSTATE_TL_YELLOW_MAJOR },
568  { "y", LINKSTATE_TL_YELLOW_MINOR },
569  { "o", LINKSTATE_TL_OFF_BLINKING },
570  { "O", LINKSTATE_TL_OFF_NOSIGNAL },
571  { "M", LINKSTATE_MAJOR },
572  { "m", LINKSTATE_MINOR },
573  { "=", LINKSTATE_EQUAL },
574  { "s", LINKSTATE_STOP },
575  { "w", LINKSTATE_ALLWAY_STOP },
576  { "Z", LINKSTATE_ZIPPER },
577  { "-", LINKSTATE_DEADEND } //< must be the last one
578 };
579 
580 
582  { "s", LINKDIR_STRAIGHT },
583  { "t", LINKDIR_TURN },
584  { "T", LINKDIR_TURN_LEFTHAND },
585  { "l", LINKDIR_LEFT },
586  { "r", LINKDIR_RIGHT },
587  { "L", LINKDIR_PARTLEFT },
588  { "R", LINKDIR_PARTRIGHT },
589  { "invalid", LINKDIR_NODIR } //< must be the last one
590 };
591 
592 
594  { "static", TLTYPE_STATIC },
595  { "rail", TLTYPE_RAIL },
596  { "actuated", TLTYPE_ACTUATED },
597  { "delayBased", TLTYPE_DELAYBASED },
598  { "sotl_phase", TLTYPE_SOTL_PHASE },
599  { "sotl_platoon", TLTYPE_SOTL_PLATOON },
600  { "sotl_request", TLTYPE_SOTL_REQUEST },
601  { "sotl_wave", TLTYPE_SOTL_WAVE },
602  { "sotl_marching", TLTYPE_SOTL_MARCHING },
603  { "swarm", TLTYPE_SWARM_BASED },
604  { "deterministic", TLTYPE_HILVL_DETERMINISTIC },
605  { "<invalid>", TLTYPE_INVALID } //< must be the last one
606 };
607 
608 
610  { "DK2008", LCM_DK2008 },
611  { "LC2013", LCM_LC2013 },
612  { "SL2015", LCM_SL2015 },
613  { "default", LCM_DEFAULT } //< must be the last one
614 };
615 
617  { "IDM", SUMO_TAG_CF_IDM },
618  { "IDMM", SUMO_TAG_CF_IDMM },
619  { "Krauss", SUMO_TAG_CF_KRAUSS },
620  { "KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
621  { "KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
622  { "SmartSK", SUMO_TAG_CF_SMART_SK },
623  { "Daniel1", SUMO_TAG_CF_DANIEL1 },
624  { "PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
625  { "BKerner", SUMO_TAG_CF_BKERNER },
626  { "Wiedemann", SUMO_TAG_CF_WIEDEMANN } //< must be the last one
627 };
628 
630  { "right", LATALIGN_RIGHT },
631  { "center", LATALIGN_CENTER },
632  { "arbitrary", LATALIGN_ARBITRARY },
633  { "nice", LATALIGN_NICE },
634  { "compact", LATALIGN_COMPACT },
635  { "left", LATALIGN_LEFT } //< must be the last one
636 };
637 
639  { "stay", LCA_STAY },
640  { "left", LCA_LEFT },
641  { "right", LCA_RIGHT },
642  { "strategic", LCA_STRATEGIC },
643  { "cooperative", LCA_COOPERATIVE },
644  { "speedGain", LCA_SPEEDGAIN },
645  { "keepRight", LCA_KEEPRIGHT },
646  { "sublane", LCA_SUBLANE },
647  { "traci", LCA_TRACI },
648  { "urgent", LCA_URGENT },
649  { "blocked", LCA_BLOCKED } //< must be the last one
650 };
651 
653  SUMOXMLDefinitions::tags, SUMO_TAG_NOTHING);
654 
656  SUMOXMLDefinitions::attrs, SUMO_ATTR_NOTHING);
657 
659  SUMOXMLDefinitions::sumoNodeTypeValues, NODETYPE_UNKNOWN);
660 
662  SUMOXMLDefinitions::sumoEdgeFuncValues, EDGEFUNC_INTERNAL);
663 
665  SUMOXMLDefinitions::laneSpreadFunctionValues, LANESPREAD_CENTER);
666 
668  SUMOXMLDefinitions::linkStateValues, LINKSTATE_DEADEND);
669 
671  SUMOXMLDefinitions::linkDirectionValues, LINKDIR_NODIR);
672 
674  SUMOXMLDefinitions::trafficLightTypesVales, TLTYPE_INVALID);
675 
677  SUMOXMLDefinitions::laneChangeModelValues, LCM_DEFAULT);
678 
680  SUMOXMLDefinitions::carFollowModelValues, SUMO_TAG_CF_WIEDEMANN);
681 
683  SUMOXMLDefinitions::lateralAlignmentValues, LATALIGN_LEFT);
684 
686  SUMOXMLDefinitions::laneChangeActionValues, LCA_BLOCKED);
687 
688 std::string
689 SUMOXMLDefinitions::getJunctionIDFromInternalEdge(const std::string internalEdge) {
690  assert(internalEdge[0] == ':');
691  return internalEdge.substr(1, internalEdge.rfind('_') - 1);
692 }
693 
694 std::string
695 SUMOXMLDefinitions::getEdgeIDFromLane(const std::string laneID) {
696  return laneID.substr(0, laneID.rfind('_'));
697 }
698 
699 /****************************************************************************/
700 
The information about how to spread the lanes from the given position.
static StringBijection< LaneChangeModel >::Entry laneChangeModelValues[]
lane change model values
The link is a partial left direction.
The link has green light, may pass.
segment of a lane
static StringBijection< SumoXMLTag > CarFollowModels
car following models
static StringBijection< SumoXMLNodeType > NodeTypes
a routeprobe detector
static StringBijection< LinkDirection >::Entry linkDirectionValues[]
link direction values
a list of node ids, used for controlling joining
alternative tag for e1 detector
description of a vehicle type
Whether vehicles must keep the junction clear.
split something
whether a given shape is user-defined
a source within a district (connection road)
The action is due to the default of keeping right "Rechtsfahrgebot".
ActivityGen Tags.
The action is done to help someone else.
static StringBijection< int >::Entry attrs[]
The names of SUMO-XML attributes (for passing to GenericSAXHandler)
static StringBijection< LinkState >::Entry linkStateValues[]
link state values
root element of a network file
begin/end of the description of a junction
begin/end of the description of a single lane
a flow definition (used by router)
Outgoing edge specification (jtrrouter)
static StringBijection< LaneSpreadFunction >::Entry laneSpreadFunctionValues[]
lane spread function values
static StringBijection< LaneSpreadFunction > LaneSpreadFunctions
lane spread functions
a traffic assignment zone
distribution of a route
lane of a reroute of type closing
A layer number.
The link has green light, has to brake.
connectio between two lanes
This is an uncontrolled, minor link, has to stop.
Allow/disallow charge in transit in Charging Stations.
static StringBijection< LateralAlignment >::Entry lateralAlignmentValues[]
lanteral alignment values
static std::string getJunctionIDFromInternalEdge(const std::string internalEdge)
workingHours object
closing for workingHours object
foe visibility distance of a link
population and children accompaniment brackets
The link is a 180 degree turn.
Wants go to the right.
weights: time range begin
link,node: the traffic light id responsible for this link
This is a dead end link.
begin/end of the description of a polygon
This is an uncontrolled, right-before-left link.
maximum duration of a phase
align with the closest sublane border
static StringBijection< LinkState > LinkStates
link states
static StringBijection< SumoXMLNodeType >::Entry sumoNodeTypeValues[]
containers for the different SUMOXMLDefinitions
drive on the right side
begin/end of the description of an edge restriction
The link is controlled by a tls which is off, not blinking, may pass.
A parking space for a single vehicle within a parking area.
Wants go to the left.
first coordinate of edge shape
This is an uncontrolled, all-way stop link.
The action is due to the wish to be faster (tactical lc)
used by the sublane model
prohibition of circulation between two edges
The link is a (hard) left direction.
This is an uncontrolled, zipper-merge link.
begin/end of the description of a route
an e3 entry point
Sink(s) specification.
whether a feature has been loaded,guessed,modified or approved
an edge based mean data detector
The link is a straight direction.
Needs to stay on the current lane.
The state of a link.
drive on the left side
static StringBijection< LinkDirection > LinkDirections
link directions
alternative definition for Population
The definition of a periodic event.
root element of a route file
The turning radius at an intersection in m.
static StringBijection< LaneChangeAction > LaneChangeActions
lane change actions
blocked in all directions
the edges of a route
station for a certain vehicle
rev stations for certain vehicles
The action is urgent (to be defined by lc-model)
frequency of a object
An instantenous induction loop.
static StringBijection< TrafficLightType > TrafficLightTypes
traffic light types
This is an uncontrolled, minor link, has to brake.
parameter associated to a certain key
an e3 exit point
schools object
An edge-following detector.
busStation and bus objects
block movement of a graphic element
invalid attribute
definition of a detector
roundabout defined in junction
Incoming edge specification (jtrrouter)
The link is a (hard) right direction.
The action is needed to follow the route (navigational lc)
node: the type of traffic light
edge: the shape in xml-definition
probability of route of a reroute
probability of destiny of a reroute
begin/end of the description of a neighboring lane
maintain the current alignment
The link is a partial right direction.
description of a logic request within the junction
streets object
begin/end of the description of an edge
reroute of type closing
drive in the middle
entry for an alternative parking zone
static StringBijection< int >::Entry tags[]
The names of SUMO-XML elements (for passing to GenericSAXHandler)
static StringBijection< LateralAlignment > LateralAlignments
lateral alignments
stop for vehicles
a lane based mean data detector
trigger: the time of the step
A train stop (alias for bus stop)
alternative definition for city entrances
a sink within a district (connection road)
the edges crossed by a pedestrian crossing
static StringBijection< LaneChangeAction >::Entry laneChangeActionValues[]
lane change action values
The link has yellow light, may pass.
Custom shape for an element.
The link is controlled by a tls which is off and blinks, has to brake.
static StringBijection< int > Attrs
The names of SUMO-XML attributes for use in netbuild.
weights: time range end
Join operation.
a vtypeprobe detector
alternative definition for junction
The link has red light (must brake)
This is an uncontrolled, major link, may pass.
crossing between edges for pedestrians
vaporizer of vehicles
The abstract direction of a link.
align with the rightmost sublane that allows keeping the current speed
description of a vehicle
an aggreagated-output interval
The action is due to a TraCI request.
The link is a 180 degree turn (left-hand network)
static StringBijection< SumoXMLTag >::Entry carFollowModelValues[]
car follwing model values
A variable speed sign.
static StringBijection< TrafficLightType >::Entry trafficLightTypesVales[]
traffic light types values
Eficiency of the charge in Charging Stations.
link: the index of the link within the traffic light
last coordinate of edge shape
a single trip definition (used by router)
type of poligon
parent of an additional element
static StringBijection< int > Tags
The names of SUMO-XML elements for use in netbuild.
a traffic light logic
Delay in the charge of charging stations.
static StringBijection< SumoXMLEdgeFunc >::Entry sumoEdgeFuncValues[]
edge function values
The link has yellow light, has to brake anyway.
opening for workingHours object
delete certain element
static std::string getEdgeIDFromLane(const std::string laneID)
return edge id when given the lane ID
static StringBijection< SumoXMLEdgeFunc > EdgeFunctions
edge functions
An access point for a train stop.
distribution of a vehicle type
A color information.
The link has red light (must brake) but indicates upcoming green.
a single phase description
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
alternative tag for e3 detector
Fill the polygon.
alternative tag for e2 detector
stations for certain vehicles
join exlude operation
begin/end of the description of a polygon
trigger: a step description
The link has no direction (is a dead end link)