SUMO
Simulation of Urban MObility

- Home
- Download
- Documentation
- Wiki
- Trac
- Blog
- Contact
- SF-Project

# Simulation/Output/Induction Loops Detectors (E1)

## Instantiating within the Simulation

An induction loop is defined this way within an additional file like this:

<inductionLoop id="<ID>" lane="<LANE_ID>" pos="<POSITION_ON_LANE>" freq="<AGGREGATION_TIME>" file="<OUTPUT_FILE>" [friendlyPos="true"] [splitByType="true"]/>

The "id" is any string by which you can name the detector. The attributes "lane" and "pos" describe on which lane and at which position on this lane the detector shall lay. The "freq"-attribute describes the period over which collected values shall be aggregated. The "file" attribute tells the simulation to which file the detector shall write his results into.

The attributes:

Attribute Name | Value Type | Description
--- | --- | ---
id | id (string) | The id of the detector
lane | referenced lane id | The id of the lane the detector shall be laid on. The lane must be a part of the network used.
pos | float | The position on the lane the detector shall be laid on in meters. The position must be a value between -1*lane's length and the lane's length. In the case of a negative value, the position will be computed backward from the lane's end (the position the vehicles drive towards).
freq | int (time) | The aggregation period the values the detector collects shall be summed up.
file | filename | The path to the output file. See Writing Files for further information.
friendlyPos | bool | If set, no error will be reported if the detector is placed behind the lane. Instead, the detector will be placed 0.1 meters from the lane's end or at position 0.1, if the position was negative and larger than the lane's length after multiplication with -1; default: false.
splitByType | bool | If set, the collected values will be additionally reported on per-vehicle type base, see below; default: false.

## Generated Output

A single data line within the output of a simulated induction loop looks as following:

       <interval begin="''<BEGIN_TIME>''" end="''<END_TIME>''" id="''<DETECTOR_ID>''" \
          nVehContrib="''<MEASURED_VEHICLES>''" flow="''<FLOW>''" occupancy="''<OCCUPANCY>''" \
          speed="''<MEAN_SPEED>''" length="''<MEAN_LENGTH>''" nVehEntered="''<ENTERED_VEHICLES>''"/>
       ... further intervals ...

The values are described in the following table.

Name | Type | Description
--- | --- | ---
begin | (simulation) seconds | The first time step the values were collected in
end | (simulation) seconds | The last time step + DELTA_T the values were collected in
id | id | The id of the detector
nVehContrib | #vehicles | The number of vehicles that have completely passed the detector within the interval
flow | #vehicles/hour | The number of contributing vehicles extrapolated to an hour
occupancy | % | The percentage (0-100%) of the time a vehicle was at the detector.
speed | m/s | The mean velocity of all completely collected vehicles.
length | m | The mean length of all completely collected vehicles.
nVehEntered | #vehicles | All vehicles that have touched the detector. Includes vehicles which have not passed the detector completely (and which do not contribute to collected values).

The detector computes the values by determining the times the vehicle enters and leaves the detector, first. This implicates, that a) some values are not available as long as the vehicle is on the detector, and b) some values can not be computed if the vehicle enters the detector by a lane change - as the vehicle did not pass the detector completely.

"nVehEntered" denotes how many vehicles were on the detector, but the values are collected for vehicles counted in "nVehContrib".

## Splitting by Type

If the output is split by vehicle types, then the values for all seen vehicle types are listed individually within the interval output:

       <interval ...measures as above... >
          <typedInterval type="<VEHICLE_TYPE>" ...measures as above... />
          ... further types ...
       </interval>
       ... further intervals ...

## Visualisation

Figure: A scenario with induction loops

Figure: A close-up view at an induction loop

## Further Notes

- Simulated induction loops can be accessed using TraCI
- Please note that in split-mode (splitByType="true") also a type line may be reported, but the values are empty. The reason is the internal implementation of the detectors, you have to take the numbers into account.
- You can generate detector definitions automatically. See output tools for more information.

This page was last modified on 5 February 2013, at 10:20.