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 
41 // ===========================================================================
42 // definitions
43 // ===========================================================================
44 
46  // Simulation elements
47  { "net", SUMO_TAG_NET },
48  { "edge", SUMO_TAG_EDGE },
49  { "lane", SUMO_TAG_LANE },
50  { "neigh", SUMO_TAG_NEIGH },
51  { "poi", SUMO_TAG_POI },
52  { "poly", SUMO_TAG_POLY },
53  { "junction", SUMO_TAG_JUNCTION },
54  { "restriction", SUMO_TAG_RESTRICTION },
55  { "e1Detector", SUMO_TAG_E1DETECTOR },
56  { "inductionLoop", SUMO_TAG_INDUCTION_LOOP },
57  { "e2Detector", SUMO_TAG_E2DETECTOR },
58  { "laneAreaDetector", SUMO_TAG_LANE_AREA_DETECTOR },
59  { "e3Detector", SUMO_TAG_E3DETECTOR },
60  { "entryExitDetector", SUMO_TAG_ENTRY_EXIT_DETECTOR },
61  { "edgeData", SUMO_TAG_MEANDATA_EDGE },
62  { "laneData", SUMO_TAG_MEANDATA_LANE },
63  { "detEntry", SUMO_TAG_DET_ENTRY },
64  { "detExit", SUMO_TAG_DET_EXIT },
65  { "edgeFollowDetector", SUMO_TAG_EDGEFOLLOWDETECTOR },
66  { "instantInductionLoop", SUMO_TAG_INSTANT_INDUCTION_LOOP },
67  { "variableSpeedSign", SUMO_TAG_VSS },
68  { "calibrator", SUMO_TAG_CALIBRATOR },
69  { "rerouter", SUMO_TAG_REROUTER },
70  { "busStop", SUMO_TAG_BUS_STOP },
71  { "trainStop", SUMO_TAG_TRAIN_STOP },
72  { "ptLine", SUMO_TAG_PT_LINE },
73  { "access", SUMO_TAG_ACCESS },
74  { "containerStop", SUMO_TAG_CONTAINER_STOP },
75  { "parkingArea", SUMO_TAG_PARKING_AREA },
76  { "space", SUMO_TAG_PARKING_SPACE },
77  { "chargingStation", SUMO_TAG_CHARGING_STATION },
78  { "vTypeProbe", SUMO_TAG_VTYPEPROBE },
79  { "routeProbe", SUMO_TAG_ROUTEPROBE },
80  { "routes", SUMO_TAG_ROUTES },
81  { "vehicle", SUMO_TAG_VEHICLE },
82  { "vType", SUMO_TAG_VTYPE },
83  { "route", SUMO_TAG_ROUTE },
84  { "request", SUMO_TAG_REQUEST },
85  { "source", SUMO_TAG_SOURCE },
86  { "taz", SUMO_TAG_TAZ },
87  { "tazSource", SUMO_TAG_TAZSOURCE },
88  { "tazSink", SUMO_TAG_TAZSINK },
89  { "trafficLight", SUMO_TAG_TRAFFIC_LIGHT },
90  { "tlLogic", SUMO_TAG_TLLOGIC },
91  { "phase", SUMO_TAG_PHASE },
92  { "trip", SUMO_TAG_TRIP },
93  { "flow", SUMO_TAG_FLOW },
94  { "step", SUMO_TAG_STEP },
95  { "interval", SUMO_TAG_INTERVAL },
96  { "timedEvent", SUMO_TAG_TIMEDEVENT },
97  { "fromEdge", SUMO_TAG_FROMEDGE },
98  { "toEdge", SUMO_TAG_TOEDGE },
99  { "sink", SUMO_TAG_SINK },
100  { "param", SUMO_TAG_PARAM },
101  { "WAUT", SUMO_TAG_WAUT },
102  { "wautSwitch", SUMO_TAG_WAUT_SWITCH },
103  { "wautJunction", SUMO_TAG_WAUT_JUNCTION },
104  { "segment", SUMO_TAG_SEGMENT },
105  { "delete", SUMO_TAG_DELETE },
106  { "stop", SUMO_TAG_STOP },
107  { "destProbReroute", SUMO_TAG_DEST_PROB_REROUTE },
108  { "closingReroute", SUMO_TAG_CLOSING_REROUTE },
109  { "closingLaneReroute", SUMO_TAG_CLOSING_LANE_REROUTE },
110  { "routeProbReroute", SUMO_TAG_ROUTE_PROB_REROUTE },
111  { "parkingAreaReroute", SUMO_TAG_PARKING_ZONE_REROUTE },
112  { "polygonType", SUMO_TAG_POLYTYPE },
113  { "connection", SUMO_TAG_CONNECTION },
114  { "prohibition", SUMO_TAG_PROHIBITION },
115  { "split", SUMO_TAG_SPLIT },
116  { "node", SUMO_TAG_NODE },
117  { "type", SUMO_TAG_TYPE },
118  { "detectorDefinition", SUMO_TAG_DETECTOR_DEFINITION },
119  { "routeDistribution", SUMO_TAG_ROUTE_DISTRIBUTION },
120  { "vTypeDistribution", SUMO_TAG_VTYPE_DISTRIBUTION },
121  { "vaporizer", SUMO_TAG_VAPORIZER },
122  { "roundabout", SUMO_TAG_ROUNDABOUT },
123  { "join", SUMO_TAG_JOIN },
124  { "joinExclude", SUMO_TAG_JOINEXCLUDE },
125  { "crossing", SUMO_TAG_CROSSING },
126  { "customShape", SUMO_TAG_CUSTOMSHAPE },
127  // OSM
128  { "way", SUMO_TAG_WAY },
129  { "nd", SUMO_TAG_ND },
130  { "tag", SUMO_TAG_TAG },
131  { "relation", SUMO_TAG_RELATION },
132  { "member", SUMO_TAG_MEMBER },
133  // View
134  { "viewsettings", SUMO_TAG_VIEWSETTINGS },
135  { "decal", SUMO_TAG_VIEWSETTINGS_DECAL },
136  { "light", SUMO_TAG_VIEWSETTINGS_LIGHT },
137  { "scheme", SUMO_TAG_VIEWSETTINGS_SCHEME },
138  { "opengl", SUMO_TAG_VIEWSETTINGS_OPENGL },
139  { "background", SUMO_TAG_VIEWSETTINGS_BACKGROUND },
140  { "edges", SUMO_TAG_VIEWSETTINGS_EDGES },
141  { "vehicles", SUMO_TAG_VIEWSETTINGS_VEHICLES },
142  { "persons", SUMO_TAG_VIEWSETTINGS_PERSONS },
143  { "containers", SUMO_TAG_VIEWSETTINGS_CONTAINERS },
144  { "junctions", SUMO_TAG_VIEWSETTINGS_JUNCTIONS },
145  { "additionals", SUMO_TAG_VIEWSETTINGS_ADDITIONALS },
146  { "pois", SUMO_TAG_VIEWSETTINGS_POIS },
147  { "polys", SUMO_TAG_VIEWSETTINGS_POLYS },
148  { "legend", SUMO_TAG_VIEWSETTINGS_LEGEND },
149  { "event", SUMO_TAG_VIEWSETTINGS_EVENT },
151  { "include", SUMO_TAG_INCLUDE },
152  { "delay", SUMO_TAG_DELAY },
153  { "viewport", SUMO_TAG_VIEWPORT },
154  { "snapshot", SUMO_TAG_SNAPSHOT },
155  { "breakpoints-file", SUMO_TAG_BREAKPOINTS_FILE },
156  { "location", SUMO_TAG_LOCATION },
157  { "colorScheme", SUMO_TAG_COLORSCHEME },
158  { "scalingScheme", SUMO_TAG_SCALINGSCHEME },
159  { "entry", SUMO_TAG_ENTRY },
160  { "vehicleTransfer", SUMO_TAG_VEHICLETRANSFER },
161  { "device", SUMO_TAG_DEVICE },
162  // Cars
163  { "carFollowing-IDM", SUMO_TAG_CF_IDM },
164  { "carFollowing-IDMM", SUMO_TAG_CF_IDMM },
165  { "carFollowing-Krauss", SUMO_TAG_CF_KRAUSS },
166  { "carFollowing-KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
167  { "carFollowing-KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
168  { "carFollowing-KraussX", SUMO_TAG_CF_KRAUSSX },
169  { "carFollowing-SmartSK", SUMO_TAG_CF_SMART_SK },
170  { "carFollowing-Daniel1", SUMO_TAG_CF_DANIEL1 },
171  { "carFollowing-PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
172  { "carFollowing-BKerner", SUMO_TAG_CF_BKERNER },
173  { "carFollowing-Wiedemann", SUMO_TAG_CF_WIEDEMANN },
174  { "carFollowing-Rail", SUMO_TAG_CF_RAIL },
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  { "emergencyDecel", SUMO_ATTR_EMERGENCYDECEL },
273  { "apparentDecel", SUMO_ATTR_APPARENTDECEL },
274  { "vClass", SUMO_ATTR_VCLASS },
275  { "repno", SUMO_ATTR_REPNUMBER },
276  { "speedFactor", SUMO_ATTR_SPEEDFACTOR },
277  { "speedDev", SUMO_ATTR_SPEEDDEV },
278  { "laneChangeModel", SUMO_ATTR_LANE_CHANGE_MODEL },
279  { "carFollowModel", SUMO_ATTR_CAR_FOLLOW_MODEL },
280  { "minGap", SUMO_ATTR_MINGAP },
281  { "boardingDuration", SUMO_ATTR_BOARDING_DURATION },
282  { "loadingDuration", SUMO_ATTR_LOADING_DURATION },
283  // Charging Station
284  { "power", SUMO_ATTR_CHARGINGPOWER },
285  { "efficiency", SUMO_ATTR_EFFICIENCY },
286  { "chargeInTransit", SUMO_ATTR_CHARGEINTRANSIT },
287  { "chargeDelay", SUMO_ATTR_CHARGEDELAY},
288  // MSDevice_Battery
289  { "actualBatteryCapacity", SUMO_ATTR_ACTUALBATTERYCAPACITY },
290  { "maximumBatteryCapacity", SUMO_ATTR_MAXIMUMBATTERYCAPACITY },
291  { "maximumPower", SUMO_ATTR_MAXIMUMPOWER },
292  { "vehicleMass", SUMO_ATTR_VEHICLEMASS },
293  { "frontSurfaceArea", SUMO_ATTR_FRONTSURFACEAREA },
294  { "airDragCoefficient", SUMO_ATTR_AIRDRAGCOEFFICIENT },
295  { "internalMomentOfInertia", SUMO_ATTR_INTERNALMOMENTOFINERTIA },
296  { "radialDragCoefficient", SUMO_ATTR_RADIALDRAGCOEFFICIENT },
297  { "rollDragCoefficient", SUMO_ATTR_ROLLDRAGCOEFFICIENT },
298  { "constantPowerIntake", SUMO_ATTR_CONSTANTPOWERINTAKE },
299  { "propulsionEfficiency", SUMO_ATTR_PROPULSIONEFFICIENCY },
300  { "recuperationEfficiency", SUMO_ATTR_RECUPERATIONEFFICIENCY },
301  { "stoppingTreshold", SUMO_ATTR_STOPPINGTRESHOLD },
302  // MSBatteryExport
303  { "energyConsumed", SUMO_ATTR_ENERGYCONSUMED },
304  { "chargingStationId", SUMO_ATTR_CHARGINGSTATIONID },
305  { "energyCharged", SUMO_ATTR_ENERGYCHARGED },
306  { "energyChargedInTransit", SUMO_ATTR_ENERGYCHARGEDINTRANSIT },
307  { "energyChargedStopped", SUMO_ATTR_ENERGYCHARGEDSTOPPED },
308  { "posOnLane", SUMO_ATTR_POSONLANE },
309  { "timeStopped", SUMO_ATTR_TIMESTOPPED },
310  // ChargingStation output
311  { "chargingStatus", SUMO_ATTR_CHARGING_STATUS },
312  { "totalEnergyCharged", SUMO_ATTR_TOTALENERGYCHARGED },
313  { "chargingSteps", SUMO_ATTR_CHARGINGSTEPS },
314  { "totalEnergyChargedIntoVehicle", SUMO_ATTR_TOTALENERGYCHARGED_VEHICLE },
315  { "chargingBegin", SUMO_ATTR_CHARGINGBEGIN },
316  { "chargingEnd", SUMO_ATTR_CHARGINGEND },
317  { "partialCharge", SUMO_ATTR_PARTIALCHARGE },
318 
319  { "sigma", SUMO_ATTR_SIGMA },
320  { "tau", SUMO_ATTR_TAU },
321  { "tmp1", SUMO_ATTR_TMP1 },
322  { "tmp2", SUMO_ATTR_TMP2 },
323  { "tmp3", SUMO_ATTR_TMP3 },
324  { "tmp4", SUMO_ATTR_TMP4 },
325  { "tmp5", SUMO_ATTR_TMP5 },
326 
327  { "trainType", SUMO_ATTR_TRAIN_TYPE },
328 
329  { "lcStrategic", SUMO_ATTR_LCA_STRATEGIC_PARAM },
330  { "lcCooperative", SUMO_ATTR_LCA_COOPERATIVE_PARAM },
331  { "lcSpeedGain", SUMO_ATTR_LCA_SPEEDGAIN_PARAM },
332  { "lcKeepRight", SUMO_ATTR_LCA_KEEPRIGHT_PARAM },
333  { "lcSublane", SUMO_ATTR_LCA_SUBLANE_PARAM },
334  { "lcPushy", SUMO_ATTR_LCA_PUSHY },
335  { "lcAssertive", SUMO_ATTR_LCA_ASSERTIVE },
336  { "lcImpatience", SUMO_ATTR_LCA_IMPATIENCE },
337  { "lcTimeToImpatience", SUMO_ATTR_LCA_TIME_TO_IMPATIENCE },
338  { "lcAccelLat", SUMO_ATTR_LCA_ACCEL_LAT },
339  { "lcExperimental1", SUMO_ATTR_LCA_EXPERIMENTAL1 },
340 
341  { "jmCrossingGap", SUMO_ATTR_JM_CROSSING_GAP },
342  { "jmDriveAfterRedTime", SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME },
343  { "jmDriveRedSpeed", SUMO_ATTR_JM_DRIVE_RED_SPEED },
344  { "jmIgnoreKeepClearTime", SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME },
345  { "jmIgnoreFoeSpeed", SUMO_ATTR_JM_IGNORE_FOE_SPEED },
346  { "jmIgnoreFoeProb", SUMO_ATTR_JM_IGNORE_FOE_PROB },
347 
348  { "last", SUMO_ATTR_LAST },
349  { "cost", SUMO_ATTR_COST },
350  { "probability", SUMO_ATTR_PROB },
351  { "probabilities", SUMO_ATTR_PROBS },
352  { "routes", SUMO_ATTR_ROUTES },
353  { "vTypes", SUMO_ATTR_VTYPES },
354 
355  { "lane", SUMO_ATTR_LANE },
356  { "lanes", SUMO_ATTR_LANES },
357  { "from", SUMO_ATTR_FROM },
358  { "to", SUMO_ATTR_TO },
359  { "period", SUMO_ATTR_PERIOD },
360  { "fromTaz", SUMO_ATTR_FROM_TAZ },
361  { "toTaz", SUMO_ATTR_TO_TAZ },
362  { "reroute", SUMO_ATTR_REROUTE },
363  { "personCapacity", SUMO_ATTR_PERSON_CAPACITY },
364  { "containerCapacity", SUMO_ATTR_CONTAINER_CAPACITY },
365  { "personNumber", SUMO_ATTR_PERSON_NUMBER },
366  { "containerNumber", SUMO_ATTR_CONTAINER_NUMBER },
367  { "modes", SUMO_ATTR_MODES },
368  { "walkFactor", SUMO_ATTR_WALKFACTOR },
369 
370  { "function", SUMO_ATTR_FUNCTION },
371  { "pos", SUMO_ATTR_POSITION },
372  { "posLat", SUMO_ATTR_POSITION_LAT },
373  { "freq", SUMO_ATTR_FREQUENCY },
374  { "style", SUMO_ATTR_STYLE },
375  { "file", SUMO_ATTR_FILE },
376  { "junction", SUMO_ATTR_JUNCTION },
377  { "number", SUMO_ATTR_NUMBER },
378  { "duration", SUMO_ATTR_DURATION },
379  { "until", SUMO_ATTR_UNTIL },
380  { "routeProbe", SUMO_ATTR_ROUTEPROBE },
381  { "crossingEdges", SUMO_ATTR_CROSSING_EDGES },
382  // Traffic light & Nodes
383  { "time", SUMO_ATTR_TIME },
384  { "begin", SUMO_ATTR_BEGIN },
385  { "end", SUMO_ATTR_END },
386  { "tl", SUMO_ATTR_TLID },
387  { "tlType", SUMO_ATTR_TLTYPE },
388  { "linkIndex", SUMO_ATTR_TLLINKINDEX },
389  { "shape", SUMO_ATTR_SHAPE },
390  { "spreadType", SUMO_ATTR_SPREADTYPE },
391  { "radius", SUMO_ATTR_RADIUS },
392  { "customShape", SUMO_ATTR_CUSTOMSHAPE },
393  { "keepClear", SUMO_ATTR_KEEP_CLEAR },
394  { "color", SUMO_ATTR_COLOR },
395  { "dir", SUMO_ATTR_DIR },
396  { "state", SUMO_ATTR_STATE },
397  { "layer", SUMO_ATTR_LAYER },
398  { "fill", SUMO_ATTR_FILL },
399  { "prefix", SUMO_ATTR_PREFIX },
400  { "discard", SUMO_ATTR_DISCARD },
401 
402  { "fromLane", SUMO_ATTR_FROM_LANE },
403  { "toLane", SUMO_ATTR_TO_LANE },
404  { "dest", SUMO_ATTR_DEST },
405  { "source", SUMO_ATTR_SOURCE },
406  { "via", SUMO_ATTR_VIA },
407  { "nodes", SUMO_ATTR_NODES },
408  { "visibility", SUMO_ATTR_VISIBILITY_DISTANCE },
409 
410  { "minDur", SUMO_ATTR_MINDURATION },
411  { "maxDur", SUMO_ATTR_MAXDURATION },
412  { "foes", SUMO_ATTR_FOES },
413  // E2 detector
414  { "cont", SUMO_ATTR_CONT },
415  { "contPos", SUMO_ATTR_CONTPOS },
416  { "timeThreshold", SUMO_ATTR_HALTING_TIME_THRESHOLD },
417  { "speedThreshold", SUMO_ATTR_HALTING_SPEED_THRESHOLD },
418  { "jamThreshold", SUMO_ATTR_JAM_DIST_THRESHOLD },
419 
420  { "wautID", SUMO_ATTR_WAUT_ID },
421  { "junctionID", SUMO_ATTR_JUNCTION_ID },
422  { "procedure", SUMO_ATTR_PROCEDURE },
423  { "synchron", SUMO_ATTR_SYNCHRON },
424  { "refTime", SUMO_ATTR_REF_TIME },
425  { "startProg", SUMO_ATTR_START_PROG },
426  { "off", SUMO_ATTR_OFF },
427  { "friendlyPos", SUMO_ATTR_FRIENDLY_POS },
428  { "splitByType", SUMO_ATTR_SPLIT_VTYPE },
429  { "uncontrolled", SUMO_ATTR_UNCONTROLLED },
430  { "pass", SUMO_ATTR_PASS },
431  { "busStop", SUMO_ATTR_BUS_STOP },
432  { "containerStop", SUMO_ATTR_CONTAINER_STOP },
433  { "parkingArea", SUMO_ATTR_PARKING_AREA },
434  { "roadsideCapacity", SUMO_ATTR_ROADSIDE_CAPACITY },
435  { "chargingStation", SUMO_ATTR_CHARGING_STATION},
436  { "line", SUMO_ATTR_LINE },
437  { "lines", SUMO_ATTR_LINES },
438  { "value", SUMO_ATTR_VALUE },
439  { "prohibitor", SUMO_ATTR_PROHIBITOR },
440  { "prohibited", SUMO_ATTR_PROHIBITED },
441  { "allow", SUMO_ATTR_ALLOW },
442  { "disallow", SUMO_ATTR_DISALLOW },
443  { "prefer", SUMO_ATTR_PREFER },
444  { "controlledInner", SUMO_ATTR_CONTROLLED_INNER },
445  { "vehsPerHour", SUMO_ATTR_VEHSPERHOUR },
446  { "output", SUMO_ATTR_OUTPUT },
447  { "height", SUMO_ATTR_HEIGHT },
448  { "guiShape", SUMO_ATTR_GUISHAPE },
449  { "osgFile", SUMO_ATTR_OSGFILE },
450  { "imgFile", SUMO_ATTR_IMGFILE },
451  { "angle", SUMO_ATTR_ANGLE },
452  { "emissionClass", SUMO_ATTR_EMISSIONCLASS },
453  { "impatience", SUMO_ATTR_IMPATIENCE },
454  { "startPos", SUMO_ATTR_STARTPOS },
455  { "endPos", SUMO_ATTR_ENDPOS },
456  { "triggered", SUMO_ATTR_TRIGGERED },
457  { "containerTriggered", SUMO_ATTR_CONTAINER_TRIGGERED },
458  { "parking", SUMO_ATTR_PARKING },
459  { "expected", SUMO_ATTR_EXPECTED },
460  { "expectedContainers", SUMO_ATTR_EXPECTED_CONTAINERS },
461  { "index", SUMO_ATTR_INDEX },
462 
463  { "entering", SUMO_ATTR_ENTERING },
464  { "excludeEmpty", SUMO_ATTR_EXCLUDE_EMPTY },
465  { "withInternal", SUMO_ATTR_WITH_INTERNAL },
466  { "trackVehicles", SUMO_ATTR_TRACK_VEHICLES },
467  { "maxTraveltime", SUMO_ATTR_MAX_TRAVELTIME },
468  { "minSamples", SUMO_ATTR_MIN_SAMPLES },
469 
470  { "lon", SUMO_ATTR_LON },
471  { "lat", SUMO_ATTR_LAT },
472  { "geo", SUMO_ATTR_GEO },
473  { "k", SUMO_ATTR_K },
474  { "v", SUMO_ATTR_V },
475  { "ref", SUMO_ATTR_REF },
476  { "href", SUMO_ATTR_HREF },
477  { "zoom", SUMO_ATTR_ZOOM },
478  { "interpolated", SUMO_ATTR_INTERPOLATED },
479  { "threshold", SUMO_ATTR_THRESHOLD },
480 
481  { "netOffset", SUMO_ATTR_NET_OFFSET },
482  { "convBoundary", SUMO_ATTR_CONV_BOUNDARY },
483  { "origBoundary", SUMO_ATTR_ORIG_BOUNDARY },
484  { "projParameter", SUMO_ATTR_ORIG_PROJ },
485 
486  { "tauLast", SUMO_ATTR_CF_PWAGNER2009_TAULAST },
487  { "apProb", SUMO_ATTR_CF_PWAGNER2009_APPROB },
488  { "delta", SUMO_ATTR_CF_IDM_DELTA },
489  { "stepping", SUMO_ATTR_CF_IDM_STEPPING },
490  { "adaptFactor", SUMO_ATTR_CF_IDMM_ADAPT_FACTOR },
491  { "adaptTime", SUMO_ATTR_CF_IDMM_ADAPT_TIME },
492  { "phi", SUMO_ATTR_CF_KERNER_PHI },
493 
494  { "security", SUMO_ATTR_CF_WIEDEMANN_SECURITY },
495  { "estimation", SUMO_ATTR_CF_WIEDEMANN_ESTIMATION },
496 
497  { "generateWalks", SUMO_ATTR_GENERATE_WALKS },
498  { "actType", SUMO_ATTR_ACTTYPE },
499  { "slope", SUMO_ATTR_SLOPE },
500  { "version", SUMO_ATTR_VERSION },
501  { "junctionCornerDetail", SUMO_ATTR_CORNERDETAIL },
502  { "junctionLinkDetail", SUMO_ATTR_LINKDETAIL },
503  { "rectangularLaneCut", SUMO_ATTR_RECTANGULAR_LANE_CUT },
504  { "walkingareas", SUMO_ATTR_WALKINGAREAS },
505  { "lefthand", SUMO_ATTR_LEFTHAND },
506 
507  { "actorConfig", SUMO_ATTR_ACTORCONFIG },
508  { "vehicle", SUMO_ATTR_VEHICLE },
509  { "startTime", SUMO_ATTR_STARTTIME },
510  { "vehicleClass", SUMO_ATTR_VEHICLECLASS },
511  { "fuel", SUMO_ATTR_FUEL },
512  { "acceleration", SUMO_ATTR_ACCELERATION },
513  { "amount", SUMO_ATTR_AMOUNT },
514  { "origin", SUMO_ATTR_ORIGIN },
515  { "destination", SUMO_ATTR_DESTINATION },
516 
517 #ifndef WIN32
518  { "commandPosix", SUMO_ATTR_COMMAND },
519 #else
520  { "commandWindows", SUMO_ATTR_COMMAND },
521 #endif
522 
523  // ActivityGen statistics file
524  { "inhabitants", AGEN_ATTR_INHABITANTS },
525  { "households", AGEN_ATTR_HOUSEHOLDS },
526  { "childrenAgeLimit", AGEN_ATTR_CHILDREN },
527  { "retirementAgeLimit", AGEN_ATTR_RETIREMENT },
528  { "carRate", AGEN_ATTR_CARS },
529  { "unemploymentRate", AGEN_ATTR_UNEMPLOYEMENT },
530  { "footDistanceLimit", AGEN_ATTR_MAX_FOOT_DIST },
531  { "incomingTraffic", AGEN_ATTR_IN_TRAFFIC },
532  { "incoming", AGEN_ATTR_INCOMING },
533  { "outgoingTraffic", AGEN_ATTR_OUT_TRAFFIC },
534  { "outgoing", AGEN_ATTR_OUTGOING },
535  { "population", AGEN_ATTR_POPULATION },
536  { "workPosition", AGEN_ATTR_OUT_WORKPOSITION },
537  { "hour", AGEN_ATTR_HOUR },
538  { "proportion", AGEN_ATTR_PROP },
539  { "capacity", AGEN_ATTR_CAPACITY },
540  { "opening", AGEN_ATTR_OPENING },
541  { "closing", AGEN_ATTR_CLOSING },
542  { "maxTripDuration", AGEN_ATTR_MAX_TRIP_DURATION },
543  { "rate", AGEN_ATTR_RATE },
544  { "beginAge", AGEN_ATTR_BEGINAGE },
545  { "endAge", AGEN_ATTR_ENDAGE },
546  { "peopleNbr", AGEN_ATTR_PEOPLENBR },
547  { "carPreference", AGEN_ATTR_CARPREF },
548  { "meanTimePerKmInCity", AGEN_ATTR_CITYSPEED },
549  { "freeTimeActivityRate", AGEN_ATTR_FREETIMERATE },
550  { "uniformRandomTraffic", AGEN_ATTR_UNI_RAND_TRAFFIC },
551  { "departureVariation", AGEN_ATTR_DEP_VARIATION },
552 
553  // netEdit
554  { "modificationStatusNotForPrinting", GNE_ATTR_MODIFICATION_STATUS },
555  { "shapeStart", GNE_ATTR_SHAPE_START },
556  { "shapeEnd", GNE_ATTR_SHAPE_END },
557  { "blockMovement", GNE_ATTR_BLOCK_MOVEMENT },
558  { "blockShape", GNE_ATTR_BLOCK_SHAPE },
559  { "closedShape", GNE_ATTR_CLOSE_SHAPE },
560  { "parentOfAdditional", GNE_ATTR_PARENT },
561 
562  { "targetLanes", SUMO_ATTR_TARGETLANE },
563  { "crossing", SUMO_ATTR_CROSSING },
564 
565  { "xmlns:xsi", SUMO_ATTR_XMLNS },
566  { "xsi:noNamespaceSchemaLocation", SUMO_ATTR_SCHEMA_LOCATION },
567 
568  // Other
569  { "", SUMO_ATTR_NOTHING } //< must be the last one
570 };
571 
572 
573 const std::string SUMO_PARAM_ORIGID("origId");
574 
575 
577  {"traffic_light", NODETYPE_TRAFFIC_LIGHT},
578  {"traffic_light_unregulated", NODETYPE_TRAFFIC_LIGHT_NOJUNCTION},
579  {"traffic_light_right_on_red", NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED},
580  {"rail_signal", NODETYPE_RAIL_SIGNAL},
581  {"rail_crossing", NODETYPE_RAIL_CROSSING},
582  {"priority", NODETYPE_PRIORITY},
583  {"priority_stop", NODETYPE_PRIORITY_STOP},
584  {"right_before_left", NODETYPE_RIGHT_BEFORE_LEFT},
585  {"allway_stop", NODETYPE_ALLWAY_STOP},
586  {"zipper", NODETYPE_ZIPPER},
587  {"district", NODETYPE_DISTRICT},
588  {"unregulated", NODETYPE_NOJUNCTION},
589  {"internal", NODETYPE_INTERNAL},
590  {"dead_end", NODETYPE_DEAD_END},
591  {"DEAD_END", NODETYPE_DEAD_END_DEPRECATED},
592  {"unknown", NODETYPE_UNKNOWN} //< must be the last one
593 };
594 
595 
597  {"unknown", EDGEFUNC_UNKNOWN},
598  {"normal", EDGEFUNC_NORMAL},
599  {"connector", EDGEFUNC_CONNECTOR},
600  {"crossing", EDGEFUNC_CROSSING},
601  {"walkingarea", EDGEFUNC_WALKINGAREA},
602  {"internal", EDGEFUNC_INTERNAL} //< must be the last one
603 };
604 
605 
607  {"right", LANESPREAD_RIGHT }, // default
608  {"center", LANESPREAD_CENTER } //< must be the last one
609 };
610 
611 
613  { "G", LINKSTATE_TL_GREEN_MAJOR },
614  { "g", LINKSTATE_TL_GREEN_MINOR },
615  { "r", LINKSTATE_TL_RED },
616  { "u", LINKSTATE_TL_REDYELLOW },
617  { "Y", LINKSTATE_TL_YELLOW_MAJOR },
618  { "y", LINKSTATE_TL_YELLOW_MINOR },
619  { "o", LINKSTATE_TL_OFF_BLINKING },
620  { "O", LINKSTATE_TL_OFF_NOSIGNAL },
621  { "M", LINKSTATE_MAJOR },
622  { "m", LINKSTATE_MINOR },
623  { "=", LINKSTATE_EQUAL },
624  { "s", LINKSTATE_STOP },
625  { "w", LINKSTATE_ALLWAY_STOP },
626  { "Z", LINKSTATE_ZIPPER },
627  { "-", LINKSTATE_DEADEND } //< must be the last one
628 };
629 
630 
632  { "s", LINKDIR_STRAIGHT },
633  { "t", LINKDIR_TURN },
634  { "T", LINKDIR_TURN_LEFTHAND },
635  { "l", LINKDIR_LEFT },
636  { "r", LINKDIR_RIGHT },
637  { "L", LINKDIR_PARTLEFT },
638  { "R", LINKDIR_PARTRIGHT },
639  { "invalid", LINKDIR_NODIR } //< must be the last one
640 };
641 
642 
644  { "static", TLTYPE_STATIC },
645  { "rail", TLTYPE_RAIL },
646  { "actuated", TLTYPE_ACTUATED },
647  { "delay_based", TLTYPE_DELAYBASED },
648  { "sotl_phase", TLTYPE_SOTL_PHASE },
649  { "sotl_platoon", TLTYPE_SOTL_PLATOON },
650  { "sotl_request", TLTYPE_SOTL_REQUEST },
651  { "sotl_wave", TLTYPE_SOTL_WAVE },
652  { "sotl_marching", TLTYPE_SOTL_MARCHING },
653  { "swarm", TLTYPE_SWARM_BASED },
654  { "deterministic", TLTYPE_HILVL_DETERMINISTIC },
655  { "<invalid>", TLTYPE_INVALID } //< must be the last one
656 };
657 
658 
660  { "DK2008", LCM_DK2008 },
661  { "LC2013", LCM_LC2013 },
662  { "SL2015", LCM_SL2015 },
663  { "default", LCM_DEFAULT } //< must be the last one
664 };
665 
667  { "IDM", SUMO_TAG_CF_IDM },
668  { "IDMM", SUMO_TAG_CF_IDMM },
669  { "Krauss", SUMO_TAG_CF_KRAUSS },
670  { "KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
671  { "KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
672  { "KraussX", SUMO_TAG_CF_KRAUSSX }, // experimental extensions to the Krauss model
673  { "SmartSK", SUMO_TAG_CF_SMART_SK },
674  { "Daniel1", SUMO_TAG_CF_DANIEL1 },
675  { "PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
676  { "BKerner", SUMO_TAG_CF_BKERNER },
677  { "Rail", SUMO_TAG_CF_RAIL },
678  { "Wiedemann", SUMO_TAG_CF_WIEDEMANN } //< must be the last one
679 };
680 
682  { "right", LATALIGN_RIGHT },
683  { "center", LATALIGN_CENTER },
684  { "arbitrary", LATALIGN_ARBITRARY },
685  { "nice", LATALIGN_NICE },
686  { "compact", LATALIGN_COMPACT },
687  { "left", LATALIGN_LEFT } //< must be the last one
688 };
689 
691  { "stay", LCA_STAY },
692  { "left", LCA_LEFT },
693  { "right", LCA_RIGHT },
694  { "strategic", LCA_STRATEGIC },
695  { "cooperative", LCA_COOPERATIVE },
696  { "speedGain", LCA_SPEEDGAIN },
697  { "keepRight", LCA_KEEPRIGHT },
698  { "sublane", LCA_SUBLANE },
699  { "traci", LCA_TRACI },
700  { "urgent", LCA_URGENT },
701  { "blocked", LCA_BLOCKED } //< must be the last one
702 };
703 
705  SUMOXMLDefinitions::tags, SUMO_TAG_NOTHING);
706 
708  SUMOXMLDefinitions::attrs, SUMO_ATTR_NOTHING);
709 
711  SUMOXMLDefinitions::sumoNodeTypeValues, NODETYPE_UNKNOWN);
712 
714  SUMOXMLDefinitions::sumoEdgeFuncValues, EDGEFUNC_INTERNAL);
715 
717  SUMOXMLDefinitions::laneSpreadFunctionValues, LANESPREAD_CENTER);
718 
720  SUMOXMLDefinitions::linkStateValues, LINKSTATE_DEADEND);
721 
723  SUMOXMLDefinitions::linkDirectionValues, LINKDIR_NODIR);
724 
726  SUMOXMLDefinitions::trafficLightTypesValues, TLTYPE_INVALID);
727 
729  SUMOXMLDefinitions::laneChangeModelValues, LCM_DEFAULT);
730 
732  SUMOXMLDefinitions::carFollowModelValues, SUMO_TAG_CF_WIEDEMANN);
733 
735  SUMOXMLDefinitions::lateralAlignmentValues, LATALIGN_LEFT);
736 
738  SUMOXMLDefinitions::laneChangeActionValues, LCA_BLOCKED);
739 
740 std::string
741 SUMOXMLDefinitions::getJunctionIDFromInternalEdge(const std::string internalEdge) {
742  assert(internalEdge[0] == ':');
743  return internalEdge.substr(1, internalEdge.rfind('_') - 1);
744 }
745 
746 std::string
747 SUMOXMLDefinitions::getEdgeIDFromLane(const std::string laneID) {
748  return laneID.substr(0, laneID.rfind('_'));
749 }
750 
751 /****************************************************************************/
752 
number of steps that a vehicle is charging
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.
Internal moment of inertia.
segment of a lane
static StringBijection< SumoXMLTag > CarFollowModels
car following models
static StringBijection< SumoXMLNodeType > NodeTypes
node types
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)
block shape of a graphic element (Used mainly in GNEShapes)
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.
Close shape of a polygon (Used by GNEPolys)
weights: time range begin
link,node: the traffic light id responsible for this link
This is a dead end link.
tgotal of Energy charged
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
Position on lane.
an e3 entry point
Sink(s) specification.
whether a feature has been loaded,guessed,modified or approved
Radial drag coefficient.
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
timesteps in which charging ends
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)
energy provied by charging station at certain timestep
The link is a (hard) right direction.
Energy charged in transit.
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
timestep in which charging begins
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)
Energy charged stopped.
This is an uncontrolled, major link, may pass.
total energy charged into a single vehicle
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.
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 polygon
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
const std::string SUMO_PARAM_ORIGID("origId")
stations for certain vehicles
join exlude operation
static StringBijection< TrafficLightType >::Entry trafficLightTypesValues[]
traffic light types values
begin/end of the description of a polygon
trigger: a step description
The link has no direction (is a dead end link)