43 currentTimeN(0), meanNTemp(0), myParent(parent) {}
55 travelledDistance = 0;
70 meanNTemp += currentTimeN;
80 currentTimeN += (double) pow(10., (
sn / 10.));
81 sampleSeconds += timeOnLane;
82 travelledDistance += travelledDistanceVehicleOnLane;
88 const double ,
const double defaultTravelTime,
const int )
const {
89 const double noise = meanNTemp != 0 ? (double)(10. * log10(meanNTemp *
TS /
STEPS2TIME(period))) : (
double) 0.;
91 if (sampleSeconds > myParent->myMinSamples) {
92 double traveltime = myParent->myMaxTravelTime;
93 if (travelledDistance > 0.f) {
94 traveltime =
MIN2(traveltime, myLaneLength * sampleSeconds / travelledDistance);
97 }
else if (defaultTravelTime >= 0.) {
111 const bool useLanes,
const bool withEmpty,
112 const bool printDefaults,
const bool withInternal,
113 const bool trackVehicles,
114 const double maxTravelTime,
const double minSamples,
115 const std::string& vTypes,
116 const std::string& writeAttributes) :
117 MSMeanData(id, dumpBegin, dumpEnd, useLanes, withEmpty, printDefaults,
118 withInternal, trackVehicles, 0, maxTravelTime, minSamples, vTypes, writeAttributes) {
134 for (std::vector<std::vector<MeanDataValues*> >::const_iterator i =
myMeasures.begin(); i !=
myMeasures.end(); ++i) {
135 const std::vector<MeanDataValues*>& lm = *i;
136 for (std::vector<MeanDataValues*>::const_iterator j = lm.begin(); j != lm.end(); ++j) {
@ SUMO_ATTR_NOISE
MSMeanData_Harmonoise.
static double computeNoise(SUMOEmissionClass c, double v, double a)
Returns the noise produced by the a vehicle of the given type at the given speed.
Representation of a lane in the micro simulation.
Data structure for mean (aggregated) edge/lane values.
double travelledDistance
The sum of the distances the vehicles travelled.
Data structure for mean (aggregated) edge/lane values.
void notifyMoveInternal(const SUMOTrafficObject &veh, const double, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane, const double)
Internal notification about the vehicle moves.
void reset(bool afterWrite=false)
Resets values so they may be used for the next interval.
void write(OutputDevice &dev, long long int attributeMask, const SUMOTime period, const double numLanes, const double defaultTravelTime, const int numVehicles=-1) const
Writes output values into the given stream.
MSLaneMeanDataValues(MSLane *const lane, const double length, const bool doAdd, const MSMeanData_Harmonoise *parent)
Constructor.
virtual ~MSLaneMeanDataValues()
Destructor.
double meanNTemp
Sum of produced noise over time (pow(10, (<NOISE>/10.)))
void update()
Computes the noise in the last time step.
void addTo(MSMeanData::MeanDataValues &val) const
Add the values to this meanData.
Noise data collector for edges/lanes.
MSMeanData::MeanDataValues * createValues(MSLane *const lane, const double length, const bool doAdd) const
Create an instance of MeanDataValues.
virtual void detectorUpdate(const SUMOTime step)
Updates the detector.
MSMeanData_Harmonoise(const std::string &id, const SUMOTime dumpBegin, const SUMOTime dumpEnd, const bool useLanes, const bool withEmpty, const bool printDefaults, const bool withInternal, const bool trackVehicles, const double minSamples, const double maxTravelTime, const std::string &vTypes, const std::string &writeAttributes)
Constructor.
virtual ~MSMeanData_Harmonoise()
Destructor.
Data collector for edges/lanes.
virtual void detectorUpdate(const SUMOTime step)
Updates the detector.
std::vector< std::vector< MeanDataValues * > > myMeasures
Value collectors; sorted by edge, then by lane.
SUMOEmissionClass getEmissionClass() const
Get this vehicle type's emission class.
Static storage of an output device and its base (abstract) implementation.
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
Representation of a vehicle, person, or container.
virtual double getAcceleration() const =0
Returns the object's acceleration.
virtual const MSVehicleType & getVehicleType() const =0
Returns the object's "vehicle" type.