gtfs2emis
Estimating public transport emissions from GTFS data.
https://github.com/ipeaGIT/gtfs2emis
Category: Emissions
Sub Category: Emission Observation and Modeling
Keywords
emissions environmental-modelling gtfs public-transport r rspatial transport
Keywords from Contributors
gps-format gtfs-format atmospheric-science
Last synced: about 1 hour ago
JSON representation
Repository metadata
R package to estimate public transport emissions based on GTFS data
- Host: GitHub
- URL: https://github.com/ipeaGIT/gtfs2emis
- Owner: ipeaGIT
- License: other
- Created: 2019-10-29T14:21:46.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-21T18:15:55.000Z (3 months ago)
- Last Synced: 2025-04-10T05:39:10.816Z (17 days ago)
- Topics: emissions, environmental-modelling, gtfs, public-transport, r, rspatial, transport
- Language: R
- Homepage: https://ipeagit.github.io/gtfs2emis/
- Size: 34.5 MB
- Stars: 28
- Watchers: 4
- Forks: 2
- Open Issues: 11
- Releases: 3
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- License: LICENSE
README.md
gtfs2emis: Estimating public transport emissions from GTFS data
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
GTFS standard format; and ii) some basic information on fleet
characteristics such as vehicle age, technology, fuel, and Euro stage.
As it stands, the package estimates several pollutants (see table below)
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).
Installation
You can install gtfs2emis
:
# From CRAN
install.packages("gtfs2emis")
library(gtfs2emis)
# or use the development version with latest features
utils::remove.packages('gtfs2emis')
devtools::install_github("ipeaGIT/gtfs2emis")
library(gtfs2emis)
Usage and Data requirements
The gtfs2emis
package has two core functions.
-
transport_model()
converts GTFS data into a GPS-like table with
the space-time positions and speeds of public transport vehicles.
The only input required is aGTFS.zip
feed. -
emission_model()
estimates hot-exhaust emissions based on four
inputs:
-
- the result from the
transport_model()
;
- the result from the
-
- a
data.frame
with info on fleet characteristics;
- a
-
- a
string
indicating which emission factor model should be considered;
- a
-
- a
string
indicating which pollutants should be estimated.
- a
To help users analyze the output from emission_model()
, the
gtfs2emis
package has few functions:
emis_to_dt()
to convert the output ofemission_model()
from
list
todata.table
.emis_summary()
to aggregate emission estimates by the time of the
day, vehicle type, or road segment.emis_grid()
to spatially aggregate emission estimates using any
custom spatial grid or polygons.
Demonstration on sample data
To illustrate functionality, the package includes small sample data sets
of the public transport and fleet of Curitiba (Brazil), Detroit (USA),
and Dublin (Ireland). Estimating the emissions of a given public
transport system using gtfs2emis
can be done in three simple steps, as
follows.
1. Run transport model
The first step is to use the transport_model()
function to convert
GTFS data into a GPS-like table, so that we can get the space-time
position and speed of each vehicle of the public transport system at
high spatial and temporal resolutions.
# read GTFS.zip
gtfs_file <- system.file("extdata/irl_dub_gtfs.zip", package = "gtfs2emis")
gtfs <- gtfstools::read_gtfs(gtfs_file)
# generate transport model
tp_model <- transport_model(gtfs_data = gtfs,spatial_resolution = 100,parallel = TRUE)
2. Prepare fleet data
The second step is to prepare a data.frame
with some characteristics
of the public transport fleet. Note that different emission factor
models may require information on different fleet characteristics, such
as vehicle age, type, Euro standard, technology, and fuel. This can be
either: - A simple table with the overall composition of the fleet. In
this case, the gtfs2emis
will assume that fleet is homogeneously
distributed across all routes; OR - A detailed table that (1) brings
info on the characteristics of each vehicle and, (2) tells the
probability with which each vehicle type is allocated to each transport
route.
Here is what a simple fleet table to be used with the EMEP-EEA emission
factor model looks like:
fleet_file <- system.file("extdata/irl_dub_fleet.txt", package = "gtfs2emis")
fleet_df <- read.csv(fleet_file)
fleet_df
#> veh_type euro fuel N fleet_composition tech
#> 1 Ubus Std 15 - 18 t III D 10 0.00998004 -
#> 2 Ubus Std 15 - 18 t IV D 296 0.29540918 SCR
#> 3 Ubus Std 15 - 18 t V D 148 0.14770459 SCR
#> 4 Ubus Std 15 - 18 t VI D 548 0.54690619 DPF+SCR
3. Run emission model
In the final step, the emission_model()
function to estimate hot
exhaust emissions of our public transport system. Here, the user needs
to pass the results from transport_model()
, some fleet data as
described above, and select which emission factor model and pollutants
should be considered (see the options available below). The output from
emission_model()
is a list
with several vectors
and data.frames
with emission estimates and related information such as vehicle
variables (fuel
, age
, tech
, euro
, fleet_composition
), travel
variables (slope
, load
, gps
) or pollution (EF
, emi
).
emi_list <- emission_model(tp_model = tp_model
, ef_model = "ef_europe_emep"
, fleet_data = fleet_df
, pollutant = c("NOx","PM10")
)
names(emi_list)
#> [1] "pollutant" "veh_type" "euro"
#> [4] "fuel" "tech" "slope"
#> [7] "load" "speed" "EF"
#> [10] "emi" "fleet_composition" "tp_model"
Emission factor models and pollutants available
Currently, the gtfs2emis
package provides a computational method to
estimate running exhaust emissions factors based on the following
emission factor models:
- Brazil
- CETESB: 2019 model from the Environmental Company of Sao Paulo (CETESB)
- Europe
- EMEP/EEA:
European Monitoring and Evaluation Programme, developed by the
European Environment Agency (EEA).
- EMEP/EEA:
- United States
- EMFAC2017/CARB: California Emission
Factor model, developed by the California Air Resources Board
(CARB). - MOVES3/EPA: Vehicle Emission
Simulator, developed by the Environmental Protection Agency
(EPA).
- EMFAC2017/CARB: California Emission
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 |
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.
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
the different features:
- Getting
started - Defining Fleet
data - Exploring Emission
Factors - Exploring Non Exhaust Emission
Factors
Related packages
There are several others transport emissions models available for
different purposes (see below). As of today, gtfs2emis
is the only
method with the capability to estimate emissions of public transport
systems using GTFS data.
- R: vein Bottom-up and top-down
inventory using GPS data. - R: EmissV Top-down inventory.
- Python:
PythonEmissData
Jupyter notebook to estimate simple top-down emissions. - Python: YETI YETI - Yet Another
Emissions From Traffic Inventory - Python: mobair
bottom-up model using GPS data.
Future enhancements
- Include cold-start, resuspension, and evaporative emissions factors
- Add railway emission factors
Citation
citation("gtfs2emis")
#> To cite gtfs2emis in publications use:
#>
#> Vieira, J. P. B., Pereira, R. H. M., & Andrade, P. R. (2023). Estimating
#> Public Transport Emissions from General Transit Feed Specification Data.
#> Transportation Research Part D: Transport and Environment. Volume 119,
#> 103757. https://doi.org/10.1016/j.trd.2023.103757
#>
#> A BibTeX entry for LaTeX users is
#>
#> @article{vieira2023estimating,
#> title = {Estimating Public Transport Emissions from {{General Transit Feed Specification}} Data},
#> author = {Vieira, Jo{\~a}o Pedro Bazzo and Pereira, Rafael H. M. and Andrade, Pedro R.},
#> year = {2023},
#> month = jun,
#> journal = {Transportation Research Part D: Transport and Environment},
#> volume = {119},
#> pages = {103757},
#> issn = {1361-9209},
#> doi = {10.1016/j.trd.2023.103757},
#> urldate = {2023-05-06},
#> langid = {english},
#> keywords = {Emission factors,Emission models,GTFS,Gtfs2emis,Public transport emissions,Urban bus}
#> }
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.
Owner metadata
- Name: IpeaDIRUR
- Login: ipeaGIT
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/18657547?v=4
- Repositories: 19
- Last ynced at: 2023-03-03T05:26:15.550Z
- Profile URL: https://github.com/ipeaGIT
GitHub Events
Total
- Issues event: 1
- Push event: 12
Last Year
- Issues event: 1
- Push event: 12
Committers metadata
Last synced: 4 days ago
Total Commits: 667
Total Committers: 6
Avg Commits per committer: 111.167
Development Distribution Score (DDS): 0.247
Commits in past year: 14
Committers in past year: 3
Avg Commits per committer in past year: 4.667
Development Distribution Score (DDS) in past year: 0.357
Name | Commits | |
---|---|---|
Joao Bazzo | j****o@g****m | 502 |
rafapereirabr | r****r@g****m | 91 |
Joao Pedro Bazzo Vieira | B****0@i****r | 34 |
Pedro R. Andrade | p****e@g****m | 31 |
ibarraespinosa | s****a@u****r | 5 |
Daniel Herszenhut | d****z@g****m | 4 |
Committer domains:
- usp.br: 1
- ipea.gov.br: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 91
Total pull requests: 12
Average time to close issues: 4 months
Average time to close pull requests: 7 days
Total issue authors: 5
Total pull request authors: 2
Average comments per issue: 1.0
Average comments per pull request: 0.75
Merged pull request: 11
Bot issues: 0
Bot pull requests: 0
Past year issues: 1
Past year pull requests: 0
Past year average time to close issues: 3 months
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 0.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- Joaobazzo (55)
- rafapereirabr (33)
- CANADATA-01 (1)
- isabelle-dr (1)
- surijatin (1)
Top Pull Request Authors
- pedro-andrade-inpe (10)
- Joaobazzo (2)
Top Issue Labels
- enhancement (7)
- question (1)
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- cran: 281 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
- Total maintainers: 1
cran.r-project.org: gtfs2emis
Estimating Public Transport Emissions from General Transit Feed Specification (GTFS) Data
- Homepage: https://ipeagit.github.io/gtfs2emis/
- Documentation: http://cran.r-project.org/web/packages/gtfs2emis/gtfs2emis.pdf
- Licenses: MIT + file LICENSE
- Latest release: 0.1.1 (published 5 months ago)
- Last Synced: 2025-04-26T13:35:03.645Z (1 day ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 281 Last month
-
Rankings:
- Stargazers count: 11.922%
- Forks count: 17.77%
- Dependent packages count: 29.797%
- Average: 30.45%
- Dependent repos count: 35.455%
- Downloads: 57.305%
- Maintainers (1)
Dependencies
- R >= 3.6 depends
- checkmate * imports
- data.table * imports
- furrr * imports
- future * imports
- gtfs2gps * imports
- methods * imports
- progressr * imports
- sf >= 0.9 imports
- units * imports
- ggplot2 * suggests
- gtfstools * suggests
- knitr * suggests
- lwgeom * suggests
- rmarkdown * suggests
- testthat >= 2.1.0 suggests
- vein * suggests
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact main composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact main composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-r v2 composite
Score: 11.097228186295816