43 currentTimeN(0), meanNTemp(0), myParent(parent) {}
55 travelledDistance = 0;
71 meanNTemp += currentTimeN;
81 currentTimeN += (double) pow(10., (
sn / 10.));
82 sampleSeconds += timeOnLane;
83 travelledDistance += travelledDistanceVehicleOnLane;
89 const int ,
const double ,
const double defaultTravelTime,
const int )
const {
90 const double noise = meanNTemp != 0 ? (double)(10. * log10(meanNTemp *
TS /
STEPS2TIME(period))) : (double) 0.;
92 if (sampleSeconds > myParent->myMinSamples) {
93 double traveltime = myParent->myMaxTravelTime;
94 if (travelledDistance > 0.f) {
95 traveltime =
MIN2(traveltime, myLaneLength * sampleSeconds / travelledDistance);
98 }
else if (defaultTravelTime >= 0.) {
112 const bool useLanes,
const bool withEmpty,
113 const bool printDefaults,
const bool withInternal,
114 const bool trackVehicles,
115 const double maxTravelTime,
const double minSamples,
116 const std::string& vTypes,
117 const std::string& writeAttributes,
118 const std::vector<MSEdge*>& edges,
120 MSMeanData(id, dumpBegin, dumpEnd, useLanes, withEmpty, printDefaults,
121 withInternal, trackVehicles, 0, maxTravelTime, minSamples, vTypes, writeAttributes, edges, aggregate) {
137 for (std::vector<std::vector<MeanDataValues*> >::const_iterator i =
myMeasures.begin(); i !=
myMeasures.end(); ++i) {
138 const std::vector<MeanDataValues*>& lm = *i;
139 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.
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 write(OutputDevice &dev, long long int attributeMask, const SUMOTime period, const int numLanes, const double speedLimit, const double defaultTravelTime, const int numVehicles=-1) const
Writes output values into the given stream.
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, const std::vector< MSEdge * > &edges, bool aggregate)
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.
OutputDevice & writeOptionalAttr(const SumoXMLAttr attr, const T &val, long long int attributeMask)
writes a named attribute unless filtered
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.