road-network-link-prediction

Research work which explores the application of link prediction methods on road networks.

https://github.com/impelon/road-network-link-prediction

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

academic-writing berlin dgraph link-prediction machine-learning open-street-map osmnx road-network
Last synced: 9 months ago · JSON representation ·

Repository

Research work which explores the application of link prediction methods on road networks.

Basic Info
  • Host: GitHub
  • Owner: Impelon
  • License: bsd-2-clause
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 733 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Topics
academic-writing berlin dgraph link-prediction machine-learning open-street-map osmnx road-network
Created over 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

About

In this proof-of-concept project ideas of link prediction were applied to try to predict which points in a real-world road network should be connected. Link prediction is a discipline originating from social networks, and not a lot of previous work experimented with applying its methods to road networks. Missing roads would be predicted using different features and a random forest classifier trained for a given network. Check out the seminar paper for more details on the approach and results.

Installation

  1. clone the repository via git clone https://github.com/Impelon/road-network-link-prediction.git
  2. optionally use virtualenv to make a virtual environment for python-packages
  3. open code-folder in terminal
  4. install dependencies via pip3 install -r pip-requirements.txt
  5. The project uses Dgraph to demonstrate compatability with industry-grade graph databases. This also allows storing multiple road networks in the same database. For some simpler functionalities Dgraph is not required, but the link prediction assumes a draph instance is running. You can install it as a docker container:
    1. docker pull dgraph/dgraph:v20.03.0
    2. mkdir -p ~/dgraph
    3. docker run -it -p 5080:5080 -p 6080:6080 -p 8080:8080 -p 9080:9080 -p 8000:8000 -v ~/dgraph:/dgraph --name dgraph dgraph/dgraph:v20.03.0 dgraph zero

Usage

The python scripts in the code folder provide a small usage header, please consult them for further details by supplying a --help flag.

  1. In general the workflow starts by staring the Dgraph database, here via the docker image: ./control_dgraph_docker.sh start
  2. Import a simplified road network into the database: python3 network_to_dgraph_json.py -a -d "Technische Universität Berlin, Berlin"
  3. Optionally render the imported graph: python3 render_graph.py "Technische Universität Berlin, Berlin"
  4. Collect features from the graph and train some classifiers, saving the trained classifier in the given location: python3 predict_links.py data-and-model-folder "Technische Universität Berlin, Berlin"
  5. Evaluate link prediction similarity scores, including the trained classifiers: python3 evaluate_link_prediction.py data-and-model-folder

A trained classifer can also be used to predict roads on an entirely new graph using classifier_predict_links.py.

Owner

  • Name: Ovi Tătar
  • Login: Impelon
  • Kind: user
  • Location: Berlin

Python is the source of all good. We accept Rust in this household.

Citation (CITATION.cff)

cff-version: 1.2.0
title: "road-network-link-prediction"
message: "If this research is useful to you please cite this, and leave me a message if you want!"
authors:
  - given-names: "Ovidu Victor"
    family-names: "Tătar"
    email: "research@ovi-tatar.de"
preferred-citation:
  title: "Inferring road network structure using link prediction"
  type: unpublished
  authors:
    - given-names: "Ovidu Victor"
      family-names: "Tătar"
      email: "research@ovi-tatar.de"
  url: "https://github.com/Impelon/road-network-link-prediction/releases/tag/v1.1"
  date-released: "2021-04-07"

GitHub Events

Total
Last Year

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 13
  • Total Committers: 2
  • Avg Commits per committer: 6.5
  • Development Distribution Score (DDS): 0.231
Past Year
  • Commits: 3
  • Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Ovi T. (Impelon) o****r@g****m 10
GitHub Action a****n@g****m 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: almost 2 years ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • Impelon (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/build_latex.yml actions
  • actions/checkout v2 composite
  • ad-m/github-push-action v0.6.0 composite
  • xu-cheng/latex-action v2 composite
.github/workflows/release_pdf.yml actions
  • actions/checkout v2 composite
  • svenstaro/upload-release-action 2.2.0 composite
code/pip-requirements.txt pypi
  • joblib ==0.16.0
  • networkx ==2.4
  • numpy ==1.19.0
  • osmnx ==0.15.1
  • pydgraph ==20.3.1
  • scikit-learn ==0.23.2