50 const double defaultSlope, std::ostream* stdOut,
OutputDevice* xmlOut)
51 :
SUMOSAXHandler(
""), myComputeA(computeA), myComputeAForward(computeAForward), myAccelZeroCorrection(accelZeroCorrection), myDefaultClass(defaultClass),
52 myDefaultSlope(defaultSlope), myStdOut(stdOut), myXMLOut(xmlOut), myCurrentTime(-1), myStepSize(
TS) {}
79 WRITE_WARNING(
"Unknown actor configuration '" + acId +
"' for vehicle '" +
id +
"'!");
97 WRITE_WARNING(
"Motion state for unknown vehicle '" +
id +
"'!");
121 double& v,
double& a,
double& s) {
138 throw ProcessError(
"Acceleration information is missing; try running with --compute-a.");
156 double& a,
double& s) {
165 o << t <<
";" << v <<
";" << a <<
";" << s <<
";" 166 << e.
CO <<
";" << e.
CO2 <<
";" << e.
HC <<
";" << e.
PMx <<
";" 176 double a,
double s) {
199 o <<
"CO:" <<
mySums[id].CO << std::endl
200 <<
"CO2:" <<
mySums[id].CO2 << std::endl
201 <<
"HC:" <<
mySums[id].HC << std::endl
202 <<
"NOx:" <<
mySums[id].NOx << std::endl
203 <<
"PMx:" <<
mySums[id].PMx << std::endl
204 <<
"fuel:" <<
mySums[id].fuel << std::endl
205 <<
"electricity:" <<
mySums[id].electricity << std::endl;
211 o <<
mySums[id].fuel / factor <<
"," 212 <<
mySums[id].electricity / factor <<
"," 213 <<
mySums[id].CO2 / factor <<
"," 214 <<
mySums[id].NOx / factor <<
"," 215 <<
mySums[id].CO / factor <<
"," 216 <<
mySums[id].HC / factor <<
"," 217 <<
mySums[id].PMx / factor << std::endl;
void writeNormedSums(std::ostream &o, const std::string id, const double factor)
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
static Emissions computeAll(const SUMOEmissionClass c, const double v, const double a, const double slope, const std::map< int, double > *param=0)
Returns the amount of all emitted pollutants given the vehicle type and state (in mg/s or ml/s for fu...
TrajectoriesHandler(const bool computeA, const bool computeAForward, const bool accelZeroCorrection, const SUMOEmissionClass defaultClass, const double defaultSlope, std::ostream *stdOut, OutputDevice *xmlOut)
Constructor.
const SUMOEmissionClass myDefaultClass
const bool myAccelZeroCorrection
std::map< std::string, SUMOEmissionClass > myEmissionClassByType
std::string time2string(SUMOTime t)
Storage for collected values of all emission types.
const PollutantsInterface::Emissions computeEmissions(const std::string id, const SUMOEmissionClass c, double &v, double &a, double &s)
SAX-handler base for SUMO-files.
virtual bool hasAttribute(int id) const =0
Returns the information whether the named (by its enum-value) attribute is within the current list...
SUMOTime getSUMOTimeReporting(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is a SUMOTime.
#define WRITE_WARNING(msg)
virtual std::string getString(int id) const =0
Returns the string-value of the named (by its enum-value) attribute.
static const int INVALID_VALUE
Encapsulated SAX-Attributes.
T get(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is an int.
const double myDefaultSlope
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called when an opening-tag occurs.
static SUMOEmissionClass getClass(const SUMOEmissionClass base, const std::string &vClass, const std::string &fuel, const std::string &eClass, const double weight)
Returns the emission class fittig the given parameters.
bool writeXMLEmissions(const std::string id, const SUMOEmissionClass c, SUMOTime t, double &v, double a=INVALID_VALUE, double s=INVALID_VALUE)
static std::string getName(const SUMOEmissionClass c)
Checks whether the string describes a known vehicle class.
~TrajectoriesHandler()
Destructor.
std::map< std::string, double > myLastV
virtual double getFloat(int id) const =0
Returns the double-value of the named (by its enum-value) attribute.
trigger: the time of the step
T getOpt(int attr, const char *objectid, bool &ok, T defaultValue, bool report=true) const
Tries to read given attribute assuming it is an int.
std::map< std::string, SUMOEmissionClass > myEmissionClassByVehicle
void writeSums(std::ostream &o, const std::string id)
Static storage of an output device and its base (abstract) implementation.
bool closeTag()
Closes the most recently opened tag.
bool writeEmissions(std::ostream &o, const std::string id, const SUMOEmissionClass c, double t, double &v, double &a, double &s)
std::map< std::string, PollutantsInterface::Emissions > mySums
const bool myComputeAForward
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.