diff --git a/R/emi_europe_emep_wear.R b/R/emi_europe_emep_wear.R
index fe2e29e..b39aa36 100644
--- a/R/emi_europe_emep_wear.R
+++ b/R/emi_europe_emep_wear.R
@@ -31,9 +31,9 @@
#' @details
#'
#' The following equation is employed to evaluate emissions originating from tyre
-#' and brake wear, respectively.
+#' and brake wear
#'
-#' TE(i) = dist x EF_tsp(j) x mf_s(i) x sc(speed)
+#' TE(i) = dist x EF_tsp(j) x mf_s(i) x sc(speed),
#'
#' where:
#' - TE(i) = total emissions of pollutant i (g),
diff --git a/README.md b/README.md
index d155a6a..04b95ea 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,15 @@
-
-# gtfs2emis: Estimating public transport emissions from GTFS data
-
-[![CRAN/METACRAN Version](https://www.r-pkg.org/badges/version/gtfs2emis)](https://CRAN.R-project.org/package=gtfs2emis)
-[![CRAN/METACRAN Total downloads](http://cranlogs.r-pkg.org/badges/grand-total/gtfs2emis?color=blue)](https://CRAN.R-project.org/package=gtfs2emis)
+---
+editor_options:
+ markdown:
+ wrap: 72
+---
+
+# gtfs2emis: Estimating public transport emissions from GTFS data
+
+[![CRAN/METACRAN
+Version](https://www.r-pkg.org/badges/version/gtfs2emis)](https://CRAN.R-project.org/package=gtfs2emis)
+[![CRAN/METACRAN Total
+downloads](http://cranlogs.r-pkg.org/badges/grand-total/gtfs2emis?color=blue)](https://CRAN.R-project.org/package=gtfs2emis)
[![R-CMD-check](https://github.com/ipeaGIT/gtfs2emis/workflows/R-CMD-check/badge.svg)](https://github.com/ipeaGIT/gtfs2emis/actions)
[![Lifecycle:
experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html)
@@ -10,7 +17,6 @@ experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](h
coverage](https://codecov.io/gh/ipeaGIT/gtfs2emis/branch/master/graph/badge.svg)](https://app.codecov.io/gh/ipeaGIT/gtfs2emis?branch=master)
[![DOI](https://img.shields.io/badge/DOI-10.1016/j.trd.2023.103757-blue)](https://doi.org/10.1016/j.trd.2023.103757)
-
**gtfs2emis** is an R package to estimate the emission levels of public
transport vehicles based on General Transit Feed Specification (GTFS)
data. The package requires two main inputs: i) public transport data in
@@ -21,15 +27,16 @@ at high spatial and temporal resolutions. Pollution levels can be
calculated for specific transport routes, trips, time of the day, or for
the transport system as a whole. The output with emission estimates can
be extracted in different formats, supporting analysis of how emission
-levels vary across space, time, and by fleet characteristics. A full description
-of the methods used in the gtfs2emis model is presented in [Vieira, Pereira and Andrade (2022)](https://doi.org/10.31219/osf.io/8m2cy).
-
+levels vary across space, time, and by fleet characteristics. A full
+description of the methods used in the gtfs2emis model is presented in
+[Vieira, Pereira and Andrade
+(2022)](https://doi.org/10.31219/osf.io/8m2cy).
## Installation
You can install `gtfs2emis`:
-```R
+``` r
# From CRAN
install.packages("gtfs2emis")
library(gtfs2emis)
@@ -51,14 +58,22 @@ The `gtfs2emis` package has two core functions.
2. `emission_model()` estimates hot-exhaust emissions based on four
inputs:
-- 1) the result from the `transport_model()`;
+-
+
+ 1) the result from the `transport_model()`;
-- 2) a `data.frame` with info on fleet characteristics;
+-
-- 3) a `string` indicating which emission factor model should be
+ 2) a `data.frame` with info on fleet characteristics;
+
+-
+
+ 3) a `string` indicating which emission factor model should be
considered;
-- 4) a `string` indicating which pollutants should be estimated.
+-
+
+ 4) a `string` indicating which pollutants should be estimated.
To help users analyze the output from `emission_model()`, the
`gtfs2emis` package has few functions:
@@ -172,21 +187,32 @@ emission factor models:
#### List of pollutants available by emission factor models
| Source | Pollutants |
-|----------------|------------------------------------------------------------------------------------------------------------------------------------|
+|--------------|----------------------------------------------------------|
| CETESB | CH4, CO, CO2, ETOH, FC (Fuel Consumption), FS (Fuel Sales), gCO2/KWH, gD/KWH, HC, KML, N2O, NH3, NMHC, NO, NO2, NOx, PM10 and RCHO |
| EMFAC2017/CARB | CH4, CO, CO2, N2O, NOx, PM10, PM25, ROG (Reactive Organic Gases), SOX, and TOG (Total Organic Gases) |
-| EMEP/EEA | CH4, CO, CO2, EC, FC, N2O, NH3, NOx, PM10, SPN23 (\#kWh), and VOC |
+| EMEP/EEA | CH4, CO, CO2, EC, FC, N2O, NH3, NOx, PM10, SPN23 (#kWh), and VOC |
| MOVES3/EPA | CH4, CO, CO2, EC, HONO, N2O, NH3, NH4, NO, NO2, NO3, NOx, PM10, PM25, SO2, THC, TOG, and VOC |
#### Fleet characteristics required by each emission factor model
| Source | Buses | Characteristics |
-|----------------|------------------------------|----------------------------------------------|
+|-----------------|----------------------|----------------------------------|
| CETESB | Micro, Standard, Articulated | Age, Fuel, EURO standard |
| EMEP/EAA | Micro, Standard, Articulated | Fuel, EURO standard, technology, load, slope |
| EMFAC2017/CARB | Urban Buses | Age, Fuel |
| MOVES3/EPA | Urban Buses | Age, Fuel |
+### Emissions from road vehicle tire, brake, and surface wear
+
+`gtfs2emis` also provides emissions estimates from tire, brake and
+surface wear using the [EMEP/EEA
+model](https://www.eea.europa.eu/themes/air/air-pollution-sources-1/emep-eea-air-pollutant-emission-inventory-guidebook/emep).
+The function estimates emissions of particulate matter (PM),
+encompassing black carbon (BC), which arises from distinct sources
+(tire, brake, and road surface wear). The focus is on primary particles,
+which refer to those that are directly emitted, rather than those
+generated from the re-suspension of previously deposited material.
+
## Learn more
Check out the guides for learning everything there is to know about all
@@ -198,6 +224,8 @@ the different features:
data](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_fleet_data.html)
- [Exploring Emission
Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_emission_factor.html)
+- [Exploring Non Exhaust Emission
+ Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_non_exhaust_ef.html)
### **Related packages**
@@ -253,8 +281,8 @@ citation("gtfs2emis")
#> }
```
-### Credits
+### Credits
The **gtfs2emis** package is developed by a team at the Institute for
Applied Economic Research (IPEA) in collaboration from the National
-Institute for Space Research (INPE), both from Brazil.
+Institute for Space Research (INPE), both from Brazil.
diff --git a/man/emi_europe_emep_wear.Rd b/man/emi_europe_emep_wear.Rd
index c380155..88fda10 100644
--- a/man/emi_europe_emep_wear.Rd
+++ b/man/emi_europe_emep_wear.Rd
@@ -54,9 +54,9 @@ resuspension of previously deposited material. See more in @details.
}
\details{
The following equation is employed to evaluate emissions originating from tyre
-and brake wear, respectively.
+and brake wear
-TE(i) = dist x EF_tsp(j) x mf_s(i) x sc(speed)
+TE(i) = dist x EF_tsp(j) x mf_s(i) x sc(speed),
where:
\itemize{
diff --git a/vignettes/gtfs2emis_emission_factor.Rmd b/vignettes/gtfs2emis_emission_factor.Rmd
index 51744bc..eede204 100644
--- a/vignettes/gtfs2emis_emission_factor.Rmd
+++ b/vignettes/gtfs2emis_emission_factor.Rmd
@@ -50,7 +50,7 @@ model](https://arb.ca.gov/emfac/emissions-inventory)
\- Europe, European Environment Agency ---
[EMEP-EEA](https://www.eea.europa.eu//publications/emep-eea-guidebook-2019)
-***Wear emissions (tyre, brake and road wear)***
+***Wear emissions (tire, brake and road wear)***
\- Europe, European Environment Agency ---
[EMEP-EEA](https://www.eea.europa.eu//publications/emep-eea-guidebook-2019)
@@ -69,9 +69,11 @@ and pollutant.
#library(devtools)
#devtools::load_all()
```
+
```{r, eval = FALSE,message = FALSE,}
#library(gtfs2emis)
```
+
```{r, message = FALSE}
library(units)
library(gtfs2emis)
@@ -275,6 +277,12 @@ factor functions. Users can also access the scripts used to process raw
data in the [gtfs2emis GitHub
repository](https://github.com/ipeaGIT/gtfs2emis/tree/master/data-raw).
+## Learn more
+
+Check out our extra guides:
+
+ - [Exploring Non-Exhaust Emission Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_non_exhaust_ef.html)
+
## Report a bug
If you have any suggestions or want to report an error, please visit
diff --git a/vignettes/gtfs2emis_fleet_data.Rmd b/vignettes/gtfs2emis_fleet_data.Rmd
index bd0b3f8..4834edf 100644
--- a/vignettes/gtfs2emis_fleet_data.Rmd
+++ b/vignettes/gtfs2emis_fleet_data.Rmd
@@ -133,7 +133,8 @@ fleet_data_ef_moves
Check out our extra guide:
- [Exploring Emission Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_emission_factor.html)
-
+ - [Exploring Non-Exhaust Emission Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_non_exhaust_ef.html)
+
## Report a bug
If you have any suggestions or want to report an error, please visit [the package GitHub page](https://github.com/ipeaGIT/gtfs2emis/issues).
diff --git a/vignettes/gtfs2emis_intro_vignette.Rmd b/vignettes/gtfs2emis_intro_vignette.Rmd
index 68415f4..b65a5be 100644
--- a/vignettes/gtfs2emis_intro_vignette.Rmd
+++ b/vignettes/gtfs2emis_intro_vignette.Rmd
@@ -297,7 +297,7 @@ Check out our extra guides:
- [Defining Fleet data](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_fleet_data.html)
- [Exploring Emission Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_emission_factor.html)
-
+ - [Exploring Non-Exhaust Emission Factors](https://ipeagit.github.io/gtfs2emis/articles/gtfs2emis_non_exhaust_ef.html)
## Report a bug
If you have any suggestions or want to report an error, please visit [the package GitHub page](https://github.com/ipeaGIT/gtfs2emis/issues).
\ No newline at end of file
diff --git a/vignettes/gtfs2emis_non_exhaust_ef.Rmd b/vignettes/gtfs2emis_non_exhaust_ef.Rmd
new file mode 100644
index 0000000..eb18c55
--- /dev/null
+++ b/vignettes/gtfs2emis_non_exhaust_ef.Rmd
@@ -0,0 +1,215 @@
+---
+title: "Exploring Non-Exhaust Emission Factors"
+date: "`r Sys.Date()`"
+output: rmarkdown::html_vignette
+urlcolor: blue
+vignette: >
+ %\VignetteIndexEntry{Exploring Non-Exhaust Emission Factors}
+ \usepackage[utf8]{inputenc}
+ %\VignetteEngine{knitr::rmarkdown}
+editor_options:
+ markdown:
+ wrap: 72
+---
+
+```{r, include = FALSE}
+knitr::opts_chunk$set(
+ collapse = TRUE,
+ comment = "#>")
+```
+
+When assessing vehicle emissions inventories for particles, one relevant step is taking into account the non-exhaust processes, such as tire, brake and road wear. The `gtfs2emis` incorporates the non-exhaust emissions methods from [EMEP-EEA](https://www.eea.europa.eu//publications/emep-eea-guidebook-2019).
+
+The following equation is employed to evaluate emissions originating
+from tire and brake wear
+
+$$
+ TE_i = dist \times EF_{tsp}(j) \times mf_s(i) \times SC(speed)
+$$ where:
+
+- $TE(i)$ = total emissions of pollutant i (g),
+- $dist$ = distance driven by each vehicle (km),
+- $EF_{tsp}(j)$ = TSP mass emission factor for vehicles of category j
+ (g/km),
+- $mf_s(i)$ = mass fraction of TSP that can be attributed to particle
+ size class i,
+- $SC(speed)$ = correction factor for a mean vehicle travelling at a
+ given speed (-).
+
+## Tire
+
+In the case of heavy-duty vehicles, the emission factor needs the
+incorporation of vehicle size, as determined by the number of axles, and
+load. These parameters are introduced into the equation as follows:
+
+$$EFTSP^{hdv}_{tire} = 0.5 \times N_{axle} \times LCF_{tire} \times EFTSP^{pc}_{tire}$$
+
+where:
+
+- $EFTSP^{hdv}_{tire}$ = TSP emission factor for tire wear from
+heavy-duty vehicles (g/km),
+- $N_{axle}$ = number of vehicle axles (-),
+- $LCF_{tire}$ = a load correction factor for tire wear (-),
+- $EFTSP^{pc}_{tire}$ = TSP emission factor for tire wear from passenger
+car vehicles (g/km).
+
+and $$LCF_{tire} = 1.41 + (1.38 \times LF)$$
+
+where:
+
+- $LF$ = load factor (-), ranging from 0 for an empty bus to 1 for a fully laden one.
+
+The function considers the following look-up table for number of vehicle
+axes:
+
+| vehicle class (j) | number of axes |
+|----------------------|----------------|
+| Ubus Midi \<=15 t | 2 |
+| Ubus Std 15 - 18 t | 2 |
+| Ubus Artic \>18 t | 3 |
+| Coaches Std \<=18 t | 2 |
+| Coaches Artic \>18 t | 3 |
+
+The size distribution of tire wear particles are given by:
+
+| particle size class (i) | mass fraction of TSP |
+|-------------------------|----------------------|
+| TSP | 1.000 |
+| PM10 | 0.600 |
+| PM2.5 | 0.420 |
+| PM1.0 | 0.060 |
+| PM0.1 | 0.048 |
+
+Finally, the speed correction is:
+
+- $SC_{tire}(speed) = 1.39$, when $speed < 40 km/h$;
+- $SC_{tire}(speed) = -0.00974 \times speed + 1.78$, when $40 <= speed <= 90 km/h$;
+- $SC_{tire}(speed) = 0.902$, when $speed > 90 km/h$.
+
+```{r}
+library(gtfs2emis)
+emi_europe_emep_wear(dist = units::set_units(1,"km"),
+ speed = units::set_units(30,"km/h"),
+ pollutant = c("PM10","TSP","PM2.5"),
+ veh_type = "Ubus Std 15 - 18 t",
+ fleet_composition = 1,
+ load = 0.5,
+ process = c("tyre"),
+ as_list = TRUE)
+```
+
+## Brake
+
+The heavy-duty vehicle emission factor is derived by modifying the
+passenger car emission factor to conform to experimental data obtained
+from heavy-duty vehicles.
+
+$$EFTSP^{hdv}_{brake} = 1.956 \times LCF_{brake} \times EFTSP^{pc}_{brake}$$
+
+where:
+
+- $EFTSP^{hdv}_{brake}$ = heavy-duty vehicle emission factor for TSP,
+- $LCF_{brake}$ = load correction factor for brake wear,
+- $EFTSP^{pc}_{brake}$ = passenger car emission factor for TSP.
+
+
+$$LCF_{brake} = 1 + (0.79 \times LF),$$
+
+where:
+
+- $LF$ = load factor (-), ranging from 0 for an empty bus to 1 for a fully laden one.
+
+The size distribution of brake wear particles are given by:
+
+| particle size class (i) | mass fraction of TSP |
+|-------------------------|----------------------|
+| TSP | 1.000 |
+| PM10 | 0.980 |
+| PM2.5 | 0.390 |
+| PM1.0 | 0.100 |
+| PM0.1 | 0.080 |
+
+Finally, the speed correction is:
+
+- $SC_{brake}(speed) = 1.67$, when $speed < 40 km/h$;
+- $SC_{brake}(speed) = -0.0270 \times speed + 2.75$, when $40 <= speed <= 95 km/h$;
+- $SC_{brake}(speed) = 0.185$, when $speed > 95 km/h$.
+
+```{r, message = FALSE}
+emi_europe_emep_wear(dist = units::set_units(1,"km"),
+ speed = units::set_units(30,"km/h"),
+ pollutant = c("PM10","TSP","PM2.5"),
+ veh_type = "Ubus Std 15 - 18 t",
+ fleet_composition = 1,
+ load = 0.5,
+ process = c("brake"),
+ as_list = TRUE)
+```
+
+## Road Wear
+
+Emissions are calculated according to the equation:
+
+$$TE(i) = dist \times EF^{road}_{tsp}(j) \times mf_{road}$$
+
+where:
+
+- $TE(i)$ = total emissions of pollutant i (g),
+- $dist$ = total distance driven by vehicles in category j (km),
+- $EF^{road}_{tsp}$ = TSP mass emission factor from road wear for vehicles j (0.0760 g/km),
+- $mf_{road}$ = mass fraction of TSP that can be attributed to particle size class i (-).
+
+The following table shows the size distribution of road surface wear
+particles
+
+| particle size class (i) | mass fraction of TSP |
+|-------------------------|----------------------|
+| TSP | 1.00 |
+| PM10 | 0.50 |
+| PM2.5 | 0.27 |
+
+```{r, message = FALSE}
+emi_europe_emep_wear(dist = units::set_units(1,"km"),
+ speed = units::set_units(30,"km/h"),
+ pollutant = c("PM10","TSP","PM2.5"),
+ veh_type = "Ubus Std 15 - 18 t",
+ fleet_composition = 1,
+ load = 0.5,
+ process = c("road"),
+ as_list = TRUE)
+```
+
+## Viewing Emissions
+
+Users can also use one single function to apply for more than one process (e.g. tire, brake and road), as shown below.
+
+```{r, message = FALSE,fig.height=3, fig.width=8}
+library(units)
+library(ggplot2)
+
+emis_list <- emi_europe_emep_wear(dist = units::set_units(rep(1,100),"km"),
+ speed = units::set_units(1:100,"km/h"),
+ pollutant = c("PM10","TSP","PM2.5"),
+ veh_type = c("Ubus Std 15 - 18 t"),
+ fleet_composition = c(1),
+ load = 0.5,
+ process = c("brake","tyre","road"),
+ as_list = TRUE)
+ef_dt <- gtfs2emis::emis_to_dt(emis_list,emi_vars = "emi"
+ ,segment_vars = "speed")
+ggplot(ef_dt)+
+ geom_line(aes(x = as.numeric(speed),y = as.numeric(emi),color = pollutant))+
+ facet_wrap(facets = vars(process))+
+ labs(x = "Speed (km/h)",y = "Emissions (g)")+
+ theme_minimal()
+```
+### References
+
+EMEP/EEA data and reports can be accessed in the following links:
+- 2019 edition \url{https://www.eea.europa.eu/publications/emep-eea-guidebook-2019/part-b-sectoral-guidance-chapters/1-energy/1-a-combustion/1-a-3-b-vi/view}.
+
+
+## Report a bug
+
+If you have any suggestions or want to report an error, please visit
+[the package GitHub page](https://github.com/ipeaGIT/gtfs2emis/issues).