Skip to main content

A package for road traffic data analysis

Project description

roadtraffic

PyPI PyPI - Python Version Build

Overview

The roadtraffic Python package for traffic data processing and fundamental diagram estimation. A fundamental diagram is estimated using convex regression with the help of the pyStoNED package. The mosek solver is used for the estimation. For the academic purposes, you can obtain a free academic license for the solver. You can also use the free NEOS server for the estimation, but the computational time will be longer.

Currently only data from Finnish roads, collected through this package is supported. The source of data is Fintraffic / digitraffic.fi, license CC 4.0 BY.

The package works on the raw data. The data can be aggregated over time and road direction/lane. The aggregated data is then bagged for computational efficiency. The estimation of the fundamental diagram is done on the bagged data. The availability of raw data depends on the traffic measurement station. The earliest data are from 1995. New data are available every day at 3 am (Helsinki time zone). The developers of the package are not affiliated with Fintraffic and can't influence the availability or quality of the data.

Installation

The installation of the package is avalable through the PyPI:

    pip install roadtraffic

Basic usage

The package offers an opportunity to work with Finnish traffic data. You can select a traffic measurement station (TMS or LAM, in Finnish) from the official metadata using tmsNumber field or the map taking the integer part or lamid field.

Let's take as an example the traffic management station number 162, located on Kehä II in Espoo, Finland and load, process the data and estimate the model for September 10-11, 2019.

# Import dependencies
from roadtraffic import fintraffic 

# Traffic measurement station of interest
tms_id = 162

# Initiate the list of days (tuples) of interest (Sep 10-11, 2019)
days_list = [
    (2019, 253),
    (2019, 254),
]

# Specify the road direction
# Information about the direction could be obtained from the metadata or the map
direction = 1

# Initiate the class for Fintraffic data
tms = fintraffic.TrafficMeasurementStation(tms_id, days_list)

# Load raw data for the selected period
tms.raw.load()

# Clean data for the direction
tms.raw.clean(direction=direction)

# Aggregate data
tms.raw_to_agg(aggregation_time_period='5', aggregation_time_period_unit='min')

# Bag data
tms.agg_to_bag(num_bags_density=40, num_bags_flow=200)

# Estimate the model for the median
tms.bag.estimate_model("quantile", [0.5], email="test@test.test") # you can specify your email to receive the log file

# Obtain the results
tms.bag.models.get_estimate(0.5)

# Estimate the model for the mean
tms.bag.estimate_model("mean", email="test@test.test")

# Obtain the results
tms.bag.models.get_estimate("mean")

Authors

  • Iaroslav Kriuchkov, Doctoral Researcher at Aalto University School of Business, Finland
  • Timo Kuosmanen, Professor at Turku University School of Economics, Finland

License

roadtraffic is licensed under the GNU GPLv3 License - see the LICENSE file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roadtraffic-1.0.0.tar.gz (31.3 kB view hashes)

Uploaded Source

Built Distribution

roadtraffic-1.0.0-py3-none-any.whl (32.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page