bikenwgaps

Automated detection of gaps in bicycle networks: source code for IPDC procedure

https://github.com/anastassiavybornova/bikenwgaps

Science Score: 67.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
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary

Keywords

bicycle-network osm transportation-network urban-planning
Last synced: 6 months ago · JSON representation ·

Repository

Automated detection of gaps in bicycle networks: source code for IPDC procedure

Basic Info
  • Host: GitHub
  • Owner: anastassiavybornova
  • License: gpl-3.0
  • Language: HTML
  • Default Branch: main
  • Homepage:
  • Size: 27.4 MB
Statistics
  • Stars: 12
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 1
Topics
bicycle-network osm transportation-network urban-planning
Created about 4 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

Automated Detection of Missing Links in Bicycle Networks

This is the source code for the scientific article Automated Detection of Missing Links in Bicycle Networks by A. Vybornova, T. Cunha, A. Gühnemann and M. Szell. The code runs the IPDC procedure (Identify, Prioritize, Decluster, Classify), as presented in the article, for the use case of Copenhagen.

Publication: https://doi.org/10.1111/gean.12324

Preprint: https://arxiv.org/abs/2201.03402

Visualization (map): FixBike.Net

Visualization (table): FixBike.Net/table

Workflow demonstration: Copenhagen

The code presented here pre-processes Copenhagen data from OpenStreetMap (see below) and executes the all four steps of the IPDC procedure (Identify, Prioritize, Decluster, Classify). The last step (Classify) requires a manual classification of automatically identified gaps. The code is applied to the use case of Copenhagen to demonstrate the workflow, but can be easily modified for application to any other city - see instructions in the last part of the readme.

Folder structure

The main folder/repo is bikenwgaps. It contains: * Jupyter notebooks with code: 00_import, 01_IP, 02_DC, 03_PLOT * _compare: subfolder with code output as generated if all 3 notebooks are run successfully * /analysis/: subfolder with gap classification data for Copenhagen (to reproduce plots) * /data/: subfolder with OSM data (in csv file format) as imported in 00_import * /fixbikenet/: subfolder with all html and image sources for FixBike.Net and FixBike.Net/table * packages.py: list of packages imported within each notebook * parameters_plot.py: list of plot parameters imported for plotting * requirements.txt: required packages for setting up the code environment

All output from the code is saved to the subfolders ./data/pickle/, ./analysis/, and ./results/. Once all output is generated, the notebooks can be re-run independently from each other (in any order).

Running binder

badge

Running on your local machine

Setting up code environment

The required python version is 3.8.8. pip must be installed and updated before setting up the environment. requirements.txt must be placed in the working directory. For issues that may arise with geopandas dependencies on windows, we refer our fellow sufferers to this blogpost by Geoff Boeing.

conda create --override-channels -c conda-forge -n bnwenv shapely conda activate bnwenv pip install -r requirements.txt conda install -c conda-forge ipywidgets pip install --user ipykernel python -m ipykernel install --user --name=bnwker

Running the jupyter notebooks

Run jupyter notebook with bnwker (Kernel > Change Kernel > bnwker) and make it trusted (Not Trusted > Trust). Run the notebooks in the indicated order: * 00_import * 01_IP * 02_DC * 03_PLOT

Using the workflow: Application to other cities

The code can be easily modified for application to any other city. Steps to take: * Before running 00_import - change the input data (csv files generated from OpenStreetMap) * Run 00_import, adjusting file names for import, and verify if largest connected component is accurately represented * Run 01_IP, adjusting Dmin (detour factor) if needed (default: Dmin = 1.5) * Run 02_DC, adjusting Bcutoff (benefit cutoff) if needed (default: Bcutoff = 15300) and the coordinates for map centering (default is mycitycoord = [55.6761, 12.5683] for Copenhagen) * Manually classify the gaps * use "./analysis/gapsdeclusteredtable.csv" and "./analysis/gapsdeclusteredplot.html" generated for your city* column "class": enter gap class (e.g. "BR" for bridge, "ST" for street, etc.) * if gap is not confirmed (data issue/error): leave "class" cell for that row empty * columns "address" and "comments": optional * save edited csv table as "./analysis/gapsclassifiedtable.csv" (replacing the existing file of Copenhagen data) * table is imported in the next step (notebook 03PLOT) for visualization of results * Run 03_PLOT, adjusting coordinates for map centering and (if needed) adjusting gap colours and classes

Owner

  • Login: anastassiavybornova
  • Kind: user
  • Location: Copenhagen
  • Company: IT University of Copenhagen

Citation (CITATION.cff)

cff-version: 1.0.0
message: "If you use this source code, please cite it as below."
authors:
- family-names: "Vybornova"
  given-names: "Anastassia"
  orcid: "https://orcid.org/0000-0001-6915-2561"
- family-names: "Cunha"
  given-names: "Tiago"
- family-names: "Gühnemann"
  given-names: "Astrid"
- family-names: "Szell"
  given-names: "Michael"
title: "IPDC procedure"
version: 1.0.0
date-released: 2022-03-21
url: "https://github.com/anastassiavybornova/bikenwgaps"
preferred-citation:
  type: article
  authors:
  - family-names: "Vybornova"
    given-names: "Anastassia"
    orcid: "https://orcid.org/0000-0001-6915-2561"
  - family-names: "Cunha"
    given-names: "Tiago"
  - family-names: "Gühnemann"
    given-names: "Astrid"
  - family-names: "Szell"
    given-names: "Michael"
  doi: "10.1111/gean.12324"
  journal: "Geographical Analysis"
  start: 1 
  end: 29 
  title: "Automated Detection of Missing Links in Bicycle Networks"
  issue: 0
  volume: 0
  year: 2022

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 106
  • Total Committers: 2
  • Avg Commits per committer: 53.0
  • Development Distribution Score (DDS): 0.009
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
anastassiavybornova 7****a 105
Michael Szell m****l@g****m 1

Issues and Pull Requests

Last synced: 11 months ago

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

Dependencies

requirements.txt pypi
  • Shapely ==1.8.0
  • folium *
  • geopandas ==0.10.2
  • matplotlib *
  • networkx ==2.5
  • numpy *
  • pandas *
  • python-igraph ==0.9.9