 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
17 #ifndef PollutantsInterface_h
18 #define PollutantsInterface_h
79 Emissions(
double co2 = 0,
double co = 0,
double hc = 0,
double f = 0,
double nox = 0,
double pmx = 0,
double elec = 0)
130 std::string eclower = eClass;
131 std::transform(eclower.begin(), eclower.end(), eclower.begin(), tolower);
149 return (c & 0xffffffff & ~
HEAVY_BIT) == 0;
166 const std::string& fuel,
const std::string& eClass,
const double weight)
const {
#define UNUSED_PARAMETER(x)
const std::string & getName() const
Returns the name of the model.
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
static const HelpersEnergy & getEnergyHelper()
get energy helper
static HelpersEnergy myEnergyHelper
Instance of EnergyHelper which gets cleaned up automatically.
Emissions(double co2=0, double co=0, double hc=0, double f=0, double nox=0, double pmx=0, double elec=0)
Constructor, intializes all members.
virtual double compute(const SUMOEmissionClass c, const EmissionType e, const double v, const double a, const double slope, const std::map< int, double > *param) const =0
Returns the amount of the emitted pollutant given the vehicle type and state (in mg/s or ml/s for fue...
static bool isSilent(const SUMOEmissionClass c)
Checks whether the emission class describes an electric or similar silent vehicle.
static bool isHeavy(const SUMOEmissionClass c)
Checks whether the emission class describes a bus, truck or similar vehicle.
virtual bool isSilent(const SUMOEmissionClass c)
Returns whether the class denotes a silent vehicle for interfacing with the noise model....
const std::string & getString(const T key) const
void addAllClassesInto(std::vector< SUMOEmissionClass > &list) const
Add all known emission classes of this model to the given container.
EmissionType
Enumerating all emission types, including fuel.
Helper(std::string name)
Constructor, intializes the name.
Helper & operator=(const Helper &)=delete
invalidate copy constructor
static int getEuroClass(const SUMOEmissionClass c)
Returns the Euro norm described by the given emission class.
virtual std::string getAmitranVehicleClass(const SUMOEmissionClass c) const
Returns the vehicle class described by this emission class as described in the Amitran interface (Pas...
virtual double getModifiedAccel(const SUMOEmissionClass c, const double v, const double a, const double slope) const
Returns the adapted acceleration value, useful for comparing with external PHEMlight references....
abstract superclass for the model helpers
virtual SUMOEmissionClass getClass(const SUMOEmissionClass base, const std::string &vClass, const std::string &fuel, const std::string &eClass, const double weight) const
Returns the emission class described by the given parameters. The base is used to determine the model...
static const int HEAVY_BIT
the bit to set for denoting heavy vehicles
static std::string getName(const SUMOEmissionClass c)
Checks whether the string describes a known vehicle class.
Helper methods for PHEMlight-based emission computation.
const std::string myName
the name of the model
virtual double getWeight(const SUMOEmissionClass c) const
Returns a reference weight in kg described by this emission class as described in the Amitran interfa...
virtual std::string getFuel(const SUMOEmissionClass c) const
Returns the fuel type described by this emission class as described in the Amitran interface (Gasolin...
const std::string getClassName(const SUMOEmissionClass c) const
Returns the complete name of the emission class including the model.
static double getModifiedAccel(const SUMOEmissionClass c, const double v, const double a, const double slope)
Returns the adapted acceleration value, useful for comparing with external PHEMlight references.
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.
Helper methods for energy-based electricity consumption computation based on the battery device.
static const std::vector< SUMOEmissionClass > getAllClasses()
Checks whether the string describes a known vehicle class.
Helper methods for HBEFA3-based emission computation.
static std::string getAmitranVehicleClass(const SUMOEmissionClass c)
Returns the vehicle class described by the given emission class.
T get(const std::string &str) const
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...
void addKeysInto(std::vector< T > &list) const
void addScaled(const Emissions &a, const double scale=1.)
Add the values of the other struct to this one, scaling the values if needed.
static double computeDefault(const SUMOEmissionClass c, const EmissionType e, const double v, const double a, const double slope, const double tt, const std::map< int, double > *param=0)
Returns the amount of emitted pollutant given the vehicle type and default values for the state (in m...
static double getWeight(const SUMOEmissionClass c)
Returns a representative weight for the given emission class see http://colombo-fp7....
static SUMOEmissionClass getClassByName(const std::string &eClass, const SUMOVehicleClass vc=SVC_IGNORING)
Checks whether the string describes a known vehicle class.
static std::string getFuel(const SUMOEmissionClass c)
Returns the fuel type of the given emission class.
static HelpersHBEFA myHBEFA2Helper
Instance of HBEFA2Helper which gets cleaned up automatically.
static const int ZERO_EMISSIONS
the first class in each model representing a zero emission vehicle
virtual SUMOEmissionClass getClassByName(const std::string &eClass, const SUMOVehicleClass vc)
Returns the emission class associated with the given name, aliases are possible If this method is ask...
Helper methods for HBEFA-based emission computation.
static HelpersHBEFA3 myHBEFA3Helper
Instance of HBEFA3Helper which gets cleaned up automatically.
StringBijection< SUMOEmissionClass > myEmissionClassStrings
Mapping between emission class names and integer representations.
Storage for collected values of all emission types.
static double compute(const SUMOEmissionClass c, const EmissionType e, const double v, const double a, const double slope, const std::map< int, double > *param=0)
Returns the amount of the emitted pollutant given the vehicle type and state (in mg/s or ml/s for fue...
bool hasString(const std::string &str) const
Helper methods for PHEMlight-based emission computation.
static const std::vector< std::string > & getAllClassesStr()
Get all SUMOEmissionClass in string format.
static Helper * myHelpers[]
the known model helpers
@ SVC_IGNORING
vehicles ignoring classes
virtual int getEuroClass(const SUMOEmissionClass c) const
Returns the Euro emission class described by this emission class as described in the Amitran interfac...
static HelpersPHEMlight myPHEMlightHelper
Instance of PHEMlightHelper which gets cleaned up automatically.
static std::vector< std::string > myAllClassesStr
get all emission classes in strin format