Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Spaghetti | 243 | 5 | 7 days ago | 42 | June 19, 2023 | 25 | bsd-3-clause | Python | ||
SPAtial GrapHs: nETworks, Topology, & Inference | ||||||||||
Peartree | 112 | 3 years ago | 22 | January 15, 2021 | 16 | mit | Python | |||
peartree: A library for converting transit data into a directed graph for sketch network analysis. | ||||||||||
Bikenwgrowth | 31 | 2 years ago | 2 | agpl-3.0 | Jupyter Notebook | |||||
Source code for the paper "Growing urban bicycle networks", exploring algorithmically the limitations of urban bicycle network growth | ||||||||||
Sdna_open | 28 | 2 months ago | 10 | other | C++ | |||||
Open source fork of the sDNA (Spatial Design Network Analysis) software | ||||||||||
Gtfs2nx | 5 | 2 months ago | mit | Python | ||||||
Convert GTFS feeds to realistic, routable NetworkX graph. | ||||||||||
Last Mile Routing Analyzer | 3 | 5 months ago | 12 | mpl-2.0 | Python | |||||
lmr-analyzer: A powerful toolkit to analyze the interaction between last mile operations and the street network design. | ||||||||||
Digital Method Of The Month | 2 | 6 days ago | other | |||||||
Pollingplaces_and_votingprecincts | 1 | 6 years ago | Python | |||||||
Selects hypothetical polling place locations and voting precinct boundaries, given assumed voter residences, polling place facilities, street network, and area boundary. Uses Network Analyst in ArcGIS to solve Location-Allocation. | ||||||||||
Qgis Subnet Areas | 1 | 4 years ago | Python | |||||||
A QGIS model/algorithm that computes areas closest to points based on a road network. | ||||||||||
His4936 Dh1 Course Workbook | 1 | a year ago | mit | HTML | ||||||
Digital Workbook for HIS4936@University of South Florida |
This is the source code for the scientific paper Growing urban bicycle networks by M. Szell, S. Mimar, T. Perlman, G. Ghoshal, and R. Sinatra. The code downloads and pre-processes data from OpenStreetMap, prepares points of interest, runs simulations, measures and saves the results, creates videos and plots.
Paper: https://www.nature.com/articles/s41598-022-10783-y
Data repository: zenodo.5083049
Visualization: GrowBike.Net
Videos & Plots: https://growbike.net/download
The main folder/repo is bikenwgrowth
, containing Jupyter notebooks (code/
), preprocessed data (data/
), parameters (parameters/
), result plots (plots/
), HPC server scripts and jobs (scripts/
).
Other data files (network plots, videos, results, exports, logs) make up many GBs and are stored in the separate external folder bikenwgrowth_external
due to Github's space limitations.
conda create --override-channels -c conda-forge -n OSMNX python=3.8.2 osmnx=0.16.2 python-igraph watermark haversine rasterio tqdm geojson
conda activate OSMNX
conda install -c conda-forge ipywidgets
pip install opencv-python
conda install -c anaconda gdal
pip install --user ipykernel
python -m ipykernel install --user --name=OSMNX
Run Jupyter Notebook with kernel OSMNX (Kernel > Change Kernel > OSMNX)
For multiple, esp. large, cities, running the code on a high performance computing cluster is strongly suggested as the tasks are easy to paralellize. The shell scripts are written for SLURM.
parameters/cities.csv
, see below.sbatch scripts/download.job
, but OSMNX throws too many connection issues, so manual supervision is needed)code/*.py
, parameters/*
, scripts/*
./mastersbatch_analysis.sh
./mastersbatch_export.sh
./cleanup.sh
./fixresults.sh
(to clean up results in case of amended data from repeated runs)Single (or few/small) cities could be run locally but require manual, step-by-step execution of Jupyter notebooks:
parameters/cities.csv
, see below.parameters/parameters.py
prune_measure = "betweenness"
, poi_source = "railwaystation"
prune_measure = "betweenness"
, poi_source = "grid"
prune_measure = "closeness"
, poi_source = "railwaystation"
prune_measure = "closeness"
, poi_source = "grid"
prune_measure = "random"
, poi_source = "railwaystation"
prune_measure = "random"
, poi_source = "grid"
relation["boundary"="administrative"]["name:en"="Copenhagen Municipality"]({{bbox}});(._;>;);out skel;