Skip to main content

This package has the necessary tools to read, analyze and turn mobility data into a graph object

Project description

Mobility Graph

Mobility Graph is a Python package for the creation, manipulation, and study of the mobility systems, dynamics, and functions of complex intermodal mobility networks.

A graph tool for a better network analysis:

The objective of this package is to build a directed (or a multi directed) graph that contains all the basic tools to manipulate the graph and study changes with a focalization on mobility specific functions such as shortest path and network density and connectivity.

Graph structure:
  • Nodes for stops, edges for connected stops with the respective mode.
Analysis tools:
  • Reads different mobility data and builds an adaptive graph to the mode of mobility.
  • Many standard graph algorithms
  • Standard mobility networks analysis tools
Search Algorithm tools:
  • Search algorithm to find all possible paths from origin to destination with the respective modes.
Best Path Algorithm:
  • Search Algorithm to define the best possible route based on the chosen filter. (Mode, walk score, affluence)

Documentation

If you meet the following error on a Windows machine:

A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.

Click here for a complete walkthrough.


##Usage This repository contains all project files.

Simple example

"""
Create a generic graph with two nodes and one edge
"""
from mobility_graph import Graph


g = Graph() # creating a graph object

g.add_node(stop_id='a', stop_name='Origin', stop_lon='1', stop_lat='3') 
g.add_node(stop_id='b', stop_name='Destination', stop_lon='5', stop_lat='2')

g.add_edge('a', 'b', 20, 'walk')

for node in g:
    for w in node.get_connections():
        vid = node.get_id()
        wid = w.get_id()
        print ('( %s , %s, %s, %s)' % (vid, wid, node.get_weight(w), node.get_mode(w)))

for node in g:
    print('g.node_dict[%s]=%s' % (node.get_id(), g.node_dict[node.get_id()]))

Installing the package

pip install mobility-graph

Installing Requirements

$ pip install -U -r requirements.txt

Roadmap

The objective of this tool is to contribute to a larger intermodal trip planning framework. For more info please check the this whitepaper

Contribution

You are welcome to create a pull request, for major changes and ideas to improve the framework feel free to open a discussion or send me an email to collaborate.

License

The MIT License (MIT)

Copyright (c) 2020 Transport for Cairo (see LICENSE.txt)

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

mobility_graph-0.0.5.tar.gz (21.0 kB view hashes)

Uploaded Source

Built Distribution

mobility_graph-0.0.5-py3-none-any.whl (3.9 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