Skip to content

Load, analyze and manipulate data of The Brazilian Naturalistic Driving Study

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

pabsantos/ndsbr

Repository files navigation

ndsbr

R-CMD-check

The goal of ndsbr is to help you load, manipulate and analyze the data sample of the Brazilian Naturalistic Driving Study (NDS-BR).

Overview

This package provides four main categories of functions: nds_create, nds_calc, nds_join, and nds_download. nds_create functions are used to create spatial objects in sf format, using the naturalistic data as input:

  • nds_create_points
  • nds_create_lines

nds_calc functions can be used to extract basic information of the naturalistic sample (traveled time or traveled distance) and safety-related variables, such as speeding:

  • nds_calc_dist
  • nds_calc_time
  • nds_calc_speeding

nds_join functions performs spatial join operations between ndsbr data and other spatial data, like road axis (nds_join_axis), neighborhood data (nds_join_neigh), and speed limit data (nds_join_spdlimit).

nds_load_data is used to load naturalistic data and nds_download functions ( nds_download_sf, nds_download_cwb_osm) can be used to download spatial data and import into the project environment.

A brief presentation (in portuguese) about ndsbr can be accessed here.

Installation

You can install the current version of ndsbr like so:

# install.packages("devtools")
devtools::install_github("pabsantos/ndsbr")

Example

This is a basic example which shows you how to load NDS-BR data and calculate traveled distances. First, nds_load_data loads the sample from all NDS-BR files inside a specific folder, defined by the user.

library(ndsbr)
path <- system.file("extdata", package = "ndsbr") ## Example files location
nds_data <- nds_load_data("driver", path)

head(nds_data, n = 5)
#> # A tibble: 5 × 34
#>   DRIVER  LONG   LAT DAY       DAY_CORRIGIDO `03:00:00`  TRIP ID    PR         H
#>   <chr>  <dbl> <dbl> <chr>     <chr>         <chr>      <dbl> <chr> <chr>  <dbl>
#> 1 A      -49.2 -25.5 26/8/2019 26/8/2019     22:17:27       5 A05   19:17…    NA
#> 2 A      -49.2 -25.5 26/8/2019 26/8/2019     22:17:28       5 A05   19:17…     0
#> 3 A      -49.2 -25.5 26/8/2019 26/8/2019     22:17:29       5 A05   19:17…     0
#> 4 A      -49.2 -25.5 26/8/2019 26/8/2019     22:17:30       5 A05   19:17…     0
#> 5 A      -49.2 -25.5 26/8/2019 26/8/2019     22:17:31       5 A05   19:17…     0
#> # ℹ 24 more variables: M <dbl>, S <dbl>, TIME_ACUM <dbl>, SPD_MPH <dbl>,
#> #   SPD_KMH <dbl>, ACEL_MS2 <dbl>, HEADING <dbl>, ALTITUDE_FT <dbl>,
#> #   VALID_TIME <chr>, TIMESTAMP_GPS <chr>, CPOOL <chr>, CPOOLING_CHECKED <chr>,
#> #   WSB <chr>, UMP_YN <chr>, UMP <chr>, PICK_UP <chr>, ACTION <chr>,
#> #   GPS_FILE <chr>, CIDADE <chr>, BAIRRO <chr>, NOME_RUA <chr>,
#> #   HIERARQUIA_CWB <chr>, HIERARQUIA_CTB <chr>, LIMITE_VEL <chr>

Creating a sf object with linestring geometry using nds_create_lines

nds_lines <- nds_create_lines(nds_data, x = LONG, y = LAT)

plot(nds_lines["DRIVER"])

Finally, nds_calc_dist extracts traveled distance, grouped by a variable defined by the user.

nds_dist <- nds_calc_dist(nds_lines, geom = wkt_lines, by = DRIVER)
nds_dist
#> # A tibble: 3 × 2
#>   DRIVER   DIST
#>   <chr>   <dbl>
#> 1 A      22508.
#> 2 B      51529.
#> 3 C      37736.

About

Load, analyze and manipulate data of The Brazilian Naturalistic Driving Study

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages