![]() |
SUMO - Simulation of Urban MObility
|
Data structure for mean (aggregated) edge/lane values. More...
#include <MSMeanData_Amitran.h>
Public Types | |
enum | Notification { NOTIFICATION_DEPARTED, NOTIFICATION_JUNCTION, NOTIFICATION_SEGMENT, NOTIFICATION_LANE_CHANGE, NOTIFICATION_TELEPORT, NOTIFICATION_PARKING, NOTIFICATION_ARRIVED, NOTIFICATION_VAPORIZED, NOTIFICATION_TELEPORT_ARRIVED, NOTIFICATION_PARKING_REROUTE } |
Definition of a vehicle state. More... | |
Public Member Functions | |
void | addTo (MSMeanData::MeanDataValues &val) const |
Add the values of this to the given one and store them there. More... | |
const std::string & | getDescription () const |
const MSLane * | getLane () const |
Returns the lane the reminder works on. More... | |
virtual double | getSamples () const |
Returns the number of collected sample seconds. More... | |
double | getTravelledDistance () const |
Returns the total travelled distance. More... | |
bool | isEmpty () const |
Returns whether any data was collected. More... | |
MSLaneMeanDataValues (MSLane *const lane, const double length, const bool doAdd, const MSMeanData_Amitran *parent) | |
Constructor. More... | |
virtual bool | notifyLeave (SUMOVehicle &veh, double lastPos, MSMoveReminder::Notification reason, const MSLane *enteredLane=0) |
Called if the vehicle leaves the reminder's lane. More... | |
bool | notifyMove (SUMOVehicle &veh, double oldPos, double newPos, double newSpeed) |
Checks whether the reminder still has to be notified about the vehicle moves. More... | |
void | reset (bool afterWrite=false) |
Resets values so they may be used for the next interval. More... | |
void | setDescription (const std::string &description) |
virtual void | update () |
Called if a per timestep update is needed. Default does nothing. More... | |
void | write (OutputDevice &dev, const SUMOTime period, const double numLanes, const double defaultTravelTime, const int numVehicles=-1) const |
Writes output values into the given stream. More... | |
virtual | ~MSLaneMeanDataValues () |
Destructor. More... | |
Methods inherited from MSMoveReminder | |
bool | notifyEnter (SUMOVehicle &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0) |
Computes current values and adds them to their sums. More... | |
Interface methods, to be derived by subclasses | |
void | updateDetector (SUMOVehicle &veh, double entryPos, double leavePos, SUMOTime entryTime, SUMOTime currentTime, SUMOTime leaveTime, bool cleanUp) |
Protected Member Functions | |
void | notifyMoveInternal (const SUMOVehicle &veh, const double, const double timeOnLane, const double, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane, const double) |
Internal notification about the vehicle moves. More... | |
void | removeFromVehicleUpdateValues (SUMOVehicle &veh) |
Protected Attributes | |
std::string | myDescription |
a description of this moveReminder More... | |
MSLane *const | myLane |
Lane on which the reminder works. More... | |
const double | myLaneLength |
The length of the lane / edge the data collector is on. More... | |
const MSMeanData *const | myParent |
The meandata parent. More... | |
Collected values | |
The number of sampled vehicle movements (in s) | |
double | sampleSeconds |
double | travelledDistance |
The sum of the distances the vehicles travelled. More... | |
Private Attributes | |
Collected values | |
The number of vehicles that entered this lane within the sample interval | |
int | amount |
std::map< const MSVehicleType *, int > | typedAmount |
The number of vehicles that entered this lane within the sample interval by type. More... | |
std::map< const MSVehicleType *, double > | typedSamples |
The number of sampled vehicle movements by type (in s) More... | |
std::map< const MSVehicleType *, double > | typedTravelDistance |
The sum of the distances the vehicles travelled by type. More... | |
Data structure for mean (aggregated) edge/lane values.
Structure holding values that describe the flow and other physical properties aggregated over some seconds.
Definition at line 66 of file MSMeanData_Amitran.h.
|
inherited |
Definition of a vehicle state.
Definition at line 89 of file MSMoveReminder.h.
MSMeanData_Amitran::MSLaneMeanDataValues::MSLaneMeanDataValues | ( | MSLane *const | lane, |
const double | length, | ||
const bool | doAdd, | ||
const MSMeanData_Amitran * | parent | ||
) |
Constructor.
[in] | length | The length of the object for which the data gets collected |
Definition at line 42 of file MSMeanData_Amitran.cpp.
|
virtual |
Destructor.
Definition at line 49 of file MSMeanData_Amitran.cpp.
|
virtual |
Add the values of this to the given one and store them there.
[in] | val | The meandata to add to |
Implements MSMeanData::MeanDataValues.
Definition at line 63 of file MSMeanData_Amitran.cpp.
References amount, MSMeanData::MeanDataValues::sampleSeconds, MSMeanData::MeanDataValues::travelledDistance, typedAmount, typedSamples, and typedTravelDistance.
|
inlineinherited |
Definition at line 228 of file MSMoveReminder.h.
References MSMoveReminder::myDescription, and MSMoveReminder::removeFromVehicleUpdateValues().
Referenced by MSBaseVehicle::getSingularType(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), and MSMeanData_Net::MSLaneMeanDataValues::write().
|
inlineinherited |
Returns the lane the reminder works on.
Definition at line 83 of file MSMoveReminder.h.
References MSMoveReminder::myLane.
Referenced by MSDevice_Tripinfo::computeLengthAndDuration(), libsumo::LaneArea::getLaneID(), libsumo::InductionLoop::getLaneID(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), libsumo::InductionLoop::getTree(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), MSDevice_Vehroutes::notifyEnter(), notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSMeanData::MeanDataValues::notifyMove(), libsumo::InductionLoop::storeShape(), and MSMeanData::writeEdge().
|
virtualinherited |
Returns the number of collected sample seconds.
Reimplemented in MSMeanData::MeanDataValueTracker.
Definition at line 275 of file MSMeanData.cpp.
References MSMeanData::MeanDataValues::sampleSeconds.
Referenced by MSCalibrator::currentSpeed(), MSMeanData::writePrefix(), MEInductLoop::writeXMLOutput(), and MSCalibrator::writeXMLOutput().
|
inlineinherited |
Returns the total travelled distance.
Definition at line 159 of file MSMeanData.h.
References MSMeanData::MeanDataValues::travelledDistance.
Referenced by MSCalibrator::currentSpeed(), and MSCalibrator::writeXMLOutput().
|
virtual |
Returns whether any data was collected.
Reimplemented from MSMeanData::MeanDataValues.
Definition at line 105 of file MSMeanData_Amitran.cpp.
References amount, and MSMeanData::MeanDataValues::sampleSeconds.
|
virtual |
Computes current values and adds them to their sums.
The fraction of time the vehicle is on the lane is computed and used as a weight for the vehicle's current values. The "emitted" field is incremented, additionally.
[in] | veh | The vehicle that enters the lane |
[in] | veh | The entering vehicle. |
[in] | reason | how the vehicle enters the lane |
Reimplemented from MSMeanData::MeanDataValues.
Definition at line 90 of file MSMeanData_Amitran.cpp.
References amount, MSMoveReminder::getLane(), SUMOVehicle::getVehicleType(), MSMeanData::MeanDataValues::myParent, MSMoveReminder::NOTIFICATION_DEPARTED, MSMoveReminder::NOTIFICATION_JUNCTION, typedAmount, and MSDetectorFileOutput::vehicleApplies().
|
virtualinherited |
Called if the vehicle leaves the reminder's lane.
veh | The leaving vehicle. | |
[in] | lastPos | Position on the lane when leaving. |
[in] | reason | how the vehicle leaves the lane |
Reimplemented from MSMoveReminder.
Reimplemented in MSMeanData::MeanDataValueTracker, and MSMeanData_Net::MSLaneMeanDataValues.
Definition at line 255 of file MSMeanData.cpp.
References MSGlobals::gUseMesoSim, and MSMoveReminder::NOTIFICATION_JUNCTION.
|
virtualinherited |
Checks whether the reminder still has to be notified about the vehicle moves.
Indicator if the reminders is still active for the passed vehicle/parameters. If false, the vehicle will erase this reminder from it's reminder-container.
[in] | veh | Vehicle that asks this reminder. |
[in] | oldPos | Position before move. |
[in] | newPos | Position after move with newSpeed. |
[in] | newSpeed | Moving speed. |
Reimplemented from MSMoveReminder.
Definition at line 85 of file MSMeanData.cpp.
References Named::getID(), SUMOVehicle::getID(), MSMoveReminder::getLane(), MSVehicleType::getLength(), SUMOVehicle::getPreviousSpeed(), SUMOVehicle::getVehicleType(), MSGlobals::gSemiImplicitEulerUpdate, SUMOVehicle::hasArrived(), MAX2(), MIN2(), MIN4(), MSMoveReminder::myLane, MSMeanData::MeanDataValues::myLaneLength, MSMoveReminder::notifyMoveInternal(), NUMERICAL_EPS, MSCFModel::passingTime(), MSCFModel::speedAfterTime(), TS, and WRITE_ERROR.
|
protectedvirtual |
Internal notification about the vehicle moves.
Reimplemented from MSMoveReminder.
Definition at line 81 of file MSMeanData_Amitran.cpp.
References SUMOVehicle::getVehicleType(), MSMeanData::MeanDataValues::sampleSeconds, MSMeanData::MeanDataValues::travelledDistance, typedSamples, and typedTravelDistance.
|
protectedinherited |
Definition at line 87 of file MSMoveReminder.cpp.
References MSMoveReminder::myLastVehicleUpdateValues.
Referenced by MSMoveReminder::getDescription(), MSMeanData_Net::MSLaneMeanDataValues::notifyLeave(), and MSMoveReminder::updateDetector().
|
virtual |
Resets values so they may be used for the next interval.
Implements MSMeanData::MeanDataValues.
Definition at line 54 of file MSMeanData_Amitran.cpp.
References amount, typedAmount, typedSamples, and typedTravelDistance.
|
inlineinherited |
Definition at line 224 of file MSMoveReminder.h.
References MSMoveReminder::myDescription.
Referenced by MSMeanData::init(), MEInductLoop::MEInductLoop(), METriggeredCalibrator::METriggeredCalibrator(), and MSCalibrator::MSCalibrator().
|
virtualinherited |
Called if a per timestep update is needed. Default does nothing.
Reimplemented in MSMeanData_Harmonoise::MSLaneMeanDataValues.
Definition at line 270 of file MSMeanData.cpp.
|
inherited |
Definition at line 44 of file MSMoveReminder.cpp.
References MSMoveReminder::myLastVehicleUpdateValues, MSMoveReminder::notifyMoveInternal(), MSMoveReminder::removeFromVehicleUpdateValues(), and STEPS2TIME.
Referenced by MSMoveReminder::notifyLeave(), and MEVehicle::updateDetectorForWriting().
|
virtual |
Writes output values into the given stream.
[in] | dev | The output device to write the data into |
[in] | period | Length of the period the data were gathered |
[in] | numLanes | The total number of lanes for which the data was collected |
IOError | If an error on writing occurs (!!! not yet implemented) |
Implements MSMeanData::MeanDataValues.
Definition at line 111 of file MSMeanData_Amitran.cpp.
References amount, OutputDevice::closeTag(), MSDetectorFileOutput::isTyped(), MSMeanData::MeanDataValues::myLaneLength, MSMeanData::MeanDataValues::myParent, OutputDevice::openTag(), MSMeanData::MeanDataValues::sampleSeconds, SUMO_ATTR_ID, MSMeanData::MeanDataValues::travelledDistance, typedAmount, typedSamples, typedTravelDistance, and OutputDevice::writeAttr().
|
private |
Definition at line 129 of file MSMeanData_Amitran.h.
Referenced by addTo(), isEmpty(), notifyEnter(), reset(), and write().
|
protectedinherited |
a description of this moveReminder
Definition at line 240 of file MSMoveReminder.h.
Referenced by MSMoveReminder::getDescription(), and MSMoveReminder::setDescription().
|
protectedinherited |
Lane on which the reminder works.
Definition at line 238 of file MSMoveReminder.h.
Referenced by MSE2Collector::getEstimatedCurrentVehicleNumber(), MSE2Collector::getEstimateQueueLength(), MSMoveReminder::getLane(), MSMoveReminder::MSMoveReminder(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSInductLoop::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSE2Collector::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE2Collector::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE2Collector::notifyMove(), and MSMeanData::MeanDataValueTracker::reset().
|
protectedinherited |
The length of the lane / edge the data collector is on.
Definition at line 168 of file MSMeanData.h.
Referenced by MSMeanData::MeanDataValues::notifyMove(), MSMeanData::MeanDataValueTracker::reset(), MSMeanData_Emissions::MSLaneMeanDataValues::write(), MSMeanData_Harmonoise::MSLaneMeanDataValues::write(), write(), and MSMeanData_Net::MSLaneMeanDataValues::write().
|
protectedinherited |
The meandata parent.
Definition at line 165 of file MSMeanData.h.
Referenced by MSMeanData::MeanDataValues::notifyEnter(), notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyLeave(), MSMeanData::MeanDataValueTracker::reset(), MSMeanData_Emissions::MSLaneMeanDataValues::write(), and write().
|
protectedinherited |
Definition at line 173 of file MSMeanData.h.
Referenced by MSMeanData_Harmonoise::MSLaneMeanDataValues::addTo(), MSMeanData_Emissions::MSLaneMeanDataValues::addTo(), addTo(), MSMeanData_Net::MSLaneMeanDataValues::addTo(), MSMeanData::MeanDataValues::getSamples(), isEmpty(), MSMeanData_Net::MSLaneMeanDataValues::isEmpty(), MSMeanData::MeanDataValues::isEmpty(), MSMeanData_Emissions::MSLaneMeanDataValues::notifyMoveInternal(), MSMeanData_Harmonoise::MSLaneMeanDataValues::notifyMoveInternal(), notifyMoveInternal(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), MSMeanData_Harmonoise::MSLaneMeanDataValues::reset(), MSMeanData_Emissions::MSLaneMeanDataValues::reset(), MSMeanData_Net::MSLaneMeanDataValues::reset(), MSMeanData_Emissions::MSLaneMeanDataValues::write(), MSMeanData_Harmonoise::MSLaneMeanDataValues::write(), write(), and MSMeanData_Net::MSLaneMeanDataValues::write().
|
protectedinherited |
The sum of the distances the vehicles travelled.
Definition at line 176 of file MSMeanData.h.
Referenced by MSMeanData_Harmonoise::MSLaneMeanDataValues::addTo(), MSMeanData_Emissions::MSLaneMeanDataValues::addTo(), addTo(), MSMeanData_Net::MSLaneMeanDataValues::addTo(), MSMeanData::MeanDataValues::getTravelledDistance(), MSMeanData_Emissions::MSLaneMeanDataValues::notifyMoveInternal(), MSMeanData_Harmonoise::MSLaneMeanDataValues::notifyMoveInternal(), notifyMoveInternal(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), MSMeanData_Harmonoise::MSLaneMeanDataValues::reset(), MSMeanData_Emissions::MSLaneMeanDataValues::reset(), MSMeanData_Net::MSLaneMeanDataValues::reset(), MSMeanData_Emissions::MSLaneMeanDataValues::write(), MSMeanData_Harmonoise::MSLaneMeanDataValues::write(), write(), and MSMeanData_Net::MSLaneMeanDataValues::write().
|
private |
The number of vehicles that entered this lane within the sample interval by type.
Definition at line 132 of file MSMeanData_Amitran.h.
Referenced by addTo(), notifyEnter(), reset(), and write().
|
private |
The number of sampled vehicle movements by type (in s)
Definition at line 135 of file MSMeanData_Amitran.h.
Referenced by addTo(), notifyMoveInternal(), reset(), and write().
|
private |
The sum of the distances the vehicles travelled by type.
Definition at line 138 of file MSMeanData_Amitran.h.
Referenced by addTo(), notifyMoveInternal(), reset(), and write().