Caution
This project is under heavy development. Do not use.
This is the source code for the scientific project Quality assessment of a country-wide bicycle node network with loop census analysis. The code assesses the quality of a Bicycle Node Network via loop census analysis.

Output from running the code on Denmark, showing round trip options for a family with small children
To install and use the code, you need to have installed JupyterLab.
First clone the repository:
git clone https://github.com/mszell/bikenwloops
Go to the cloned folder.
Installation with pixi is fastest and most stable. Setup a new virtual environment using the environment.yml file:
pixi init --import environment.yml
Now build the environment and run it:
pixi run jupyter lab
An instance of Jupyter lab is automatically going to open in your browser after the environment is built.
Alternatively use mamba (or conda, which is slower). Create a new virtual environment using the environment.yml file:
mamba env create -f environment.yml
Then, install the virtual environment's kernel in Jupyter:
mamba activate bikenwloops
ipython kernel install --user --name=bikenwloops
mamba deactivate
You can now run Jupyter jupyter lab with the kernel bikenwloops (Kernel > Change Kernel > bikenwloops).
Data of the knudepunkter network comes from BikeNodePlanner: Data for Denmark and BikeNodePlanner.
- Use BikeNodePlanner: Data for Denmark
- Uncomment the municipalities of your study area in
config-municipalities.yml. Several config files are already prepared for copy-pasting in theparameters/dataretrieval/folder for large study areas like Jutland or Zealand. - Set all values in
config-layers-polygon.ymltoignore. This file is already prepared for copy-pasting. - Run the
run.shscript - Copy all subfolders of
/input-for-bike-node-planner/into the/data/input/folder of bike-node-planner
This step is needed to add elevation data (from dem/dem.tif) to the edges, creating an edges_slope.gpkg file.
- Use BikeNodePlanner
- Run scripts 01 to 04
- Let's call
loopspaththe data/input path to your project, for examplebikenwloops/data/input/funen/ - Copy the file
edges_slope.gpkgfrombike-node-planner/data/output/elevationintoloopspath/network/processed/
├── code <- Jupyter notebooks and py scripts
├── data <- Data (not saved on github)
│ ├── input <- Original, immutable data
│ └── processed <- Modified data
├── parameters <- Parameters and config files
│ └── dataretrieval <- Config files for retrieving data
├── plots <- Generated figures
├── .gitignore <- Files and folders ignored by git
├── .pre-commit-config.yaml <- Pre-commit hooks used
├── LICENSE.txt
├── README.md
└── environment.yml <- Environment file to set up the environment using conda/mamba