The main purpose of Pollemission is to compute air pollutant emissions due to road transport, following COPERT formulae. These are described in the EMEP/EEA air pollutant emission inventory guide book, whose latest version dates to 2013 (see http://www.eea.europa.eu/publications/emep-eea-guidebook-2013).
Main features:
- Calculating the emission factors for different categories of vehicles (passenger cars, heavy-duty vehicles, etc.), for each type of air pollutant: CO, NOx, HC and PM.
- Plotting the evolution of emission factors against the vehicle speed and European emission standards (Pre-Euro, Euro 1, Euro 2, …, Euro 6C), for each kind of air pollutant.
- For a given road network, computing the total air pollutant emissions of each kind of pollutant for each link in the network, and plotting the results in a network map where the level of emissions is represented by colors and linewidth.
The scripts are written in Python (version 2+), and the required packages are:
- numpy
- matplotlib
- os
- OSMParser
It is the definition of the class Copert, which implements COPERT formulae for road transport emissions to compute air pollutant emission factors.
It is an example script to show simple examples for how to launch the program. Type python example_compute.py
to launch it. It contains examples of how to compute the emission factors and the emission.
Note that it makes use of the annex file from the EMEP/EEA inventory guide book package: http://www.eea.europa.eu/publications/emep-eea-guidebook-2013/complete-emep-eea-guidebook-2013. The parameter part (“ARTEMIS” sheet) of the file “1.A.3.b Road transport annex HDV files.xlxs” was converted to CSV file “input/HDV_parameter.csv”.
It is an example script to show how to display the emissions at street level with OpenStreetMap. To launch this example, you also need the following files.
- input/link_osm.dat
Description of the links in two columns: length in km and OpenStreetMap way ID. There is exactly one line per link.
- input/flow.dat
Flow in veh/h; one line per link.
- input/speed.dat
Average travel speed in km/h; one line per link.
- input/copert_class_proportion_gasoline.dat
Proportion of each COPERT class for gasoline cars, one line for each link in the network.
- input/copert_class_proportion_diesel.dat
Proportion of each COPERT class for diesel cars, one line for each link in the network.
- input/engine_capacity_gasoline.dat
There are three categories of engine capacities: below 1.4 l, in [1.4 l, 2.0 l] and above 2.0 l. This file contains the proportion of engines in each of the three capacities for gasoline cars, one line for each link.
- input/engine_capacity_diesel.dat
This file contains the proportion of engines in each of the three capacities for diesel cars, one line for each link.
- input/gasoline_proportion.dat
Proportion of gasoline cars for each link.
- input/passenger_car_proportion.dat
Proportion of passenger cars for each link.
Before launching the example, you should download the OpenStreetMap data with the following steps:
- go the website http://download.geofabrik.de/ choose ‘Europe’, then ‘France’, then ‘Auvergne’;
- download the OSM XML file of the whole administrative region of Auvergne (big): auvergne-latest.osm.bz2, and extract it;
- extract the area you need for plotting your map with this command (plotting zone for this example):
osmosis –read-xml auvergne-latest.osm –bounding-box top=45.8 left=3.079 bottom=45.75 right=3.1 –write-xml file=input/selected_zone-clermont.osm
Warning: if you want to choose another domain, change the OSM file name and its boundaries. Update the previous command and example_display.py
accordingly.
Definitions of Highway and Point objects, and associated retrieving function. This file does not need to be modified if you choose another domain.
Assume you want to compute the hot emission factor for CO, of a gasoline passenger car, whose average speed is 60, emission standard is Euro 4 and with engine capacity 1.4 l. Under Python shell, the result in g/km/veh is obtained this way:
>>> import copert
>>> c = copert.Copert("input/PC_parameter.csv", "input/LDV_parameter.csv", "input/HDV_parameter.csv", "input/Moto_parameter.csv")
>>> print c.HEFGasolinePassengerCar(pollutant = c.pollutant_CO, speed = 60, copert_class = c.class_Euro_4, engine_capacity = 1.4)
0.247392398993