view README @ 190:36968a63efe1

Got the connected_components to finally work using a vecS for the vertex list in the adjacency list. In this case, the component map is simply a vector of ints (which is the type of UndirectedGraph::vextex_descriptor (=graph_traits<FeatureGraph>::vertex_descriptor) and probably UndirectedGraph::vertices_size_type). To use listS, I was told on the Boost mailing list: >> If you truly need listS, you will need to create a vertex index >> map, fill it in before you create the property map, and pass it to the >> vector_property_map constructor (and as a type argument to that class). It may be feasible with a component map like shared_array_property_map< graph_traits<FeatureGraph>::vertex_descriptor, property_map<FeatureGraph, vertex_index_t>::const_type > components(num_vertices(g), get(vertex_index, g));
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 07 Dec 2011 18:51:32 -0500
parents 76735aeab807
children e34698d93b23
line wrap: on
line source

This work is a set of tools developed by Nicolas Saunier for transportation analysis, in particular road traffic. The tool revolves around the most typical transportation data type, trajectories, i.e. temporal series of positions. The original work targeted automated road safety analysis using video sensors. 

This piece of software is at a very early stage and does not really provide any finished tool. It contains:

- pieces of C++ code under the c directory, mostly examples related to the use of computer vision libraries, namely OpenCV and KLT (http://www.ces.clemson.edu/~stb/klt)

- python modules that provide classes for trajectories and moving objects (objects with some characteristics and a trajectory), as well as some basic code for simple traffic engineering problems (fundamental diagram and traffic signal timing). 

An Example:

The main use case and example for now is to load and analyze trajectory data from the NGSIM project (ngsim-community.org). In a ipython shell with the pylab option, you can type the following (once the python modules are in your python path). 

$ import storage
$ objects = storage.loadNgsimFile('./trajectories-0400-0415.txt',100)
$ for o in objects: o.draw()

License:

The code is licensed under the MIT open source license (http://www.opensource.org/licenses/mit-license).

If you make use of this piece of software, please cite: N. Saunier, T. Sayed and K. Ismail. Large Scale Automated Analysis of Vehicle Interactions and Collisions. Transportation Research Record: Journal of the Transportation Research Board, 2147:42-50, 2010. I would be very happy in any case to know about any use of the code, and to discuss any opportunity for collaboration. 

Contact me at nicolas.saunier@polymtl.ca and learn more about my work at http://nicolas.saunier.confins.net.