This repository contains a sidewalk width calculation approach by considering static obstacles on the sidewalk. This project is part of a broader accessibility project to determine if sidewalks are accessible and make them more inclusive to people with disabilities. Two point cloud datasets are used in this project that were taken of the same area but at different times. First, cadastral reference data is used to filter for the points above the sidewalk. Next, a change detection algorithm, M3C2, is used to identify static objects in the point clouds. Finally, sidewalk width is calculated, inspired by Meli Harvey's Sidewalk Widths NYC project. Please visit their repository to learn more about the calculation.
Example: (left) The point cloud with the sidewalk and points above it labeled. (middle) Points above the sidewalk. (right) M3C2 algorithm performed on two pointclouds.
Example: (left) M3C2 results overlayed on sidewalk polygons from topographical map. (middle) Centerline segments. (right) Width calculated along centerline segments.
datasets
Demo dataset to get startedahn
AHN elevation databgt
BGT data_pointcloud
Example labeled urban point clouds
media/examples
Visualsnotebooks
Jupyter notebook tutorialssrc/upc_sw
Python source code
-
Clone this repository:
git clone https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Sidewalk_Width.git
-
Install the dependencies:
pip install -r requirements.txt
-
Additionally, install our Urban PointCloud Processing package:
pip install https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Processing/releases/download/v0.1/upcp-0.1-py3-none-any.whl
-
Finally, install
cccorelib
andpycc
by following the instructions on their GitHub page. Please note, these two packages are not available on the Python Package Index (PyPi). -
For notebook 3, we create a clean virtual environment and follow the instructions on the CloudComPy page to install this package. This, to avoid incompatibility issues when using the
CloudComPy
package and thecccorelib
andpycc
packages. -
Check out the notebooks for a demonstration.
We provide tutorial notebooks that demonstrate how the code can be used. Labeled example point clouds are provided to get started.
This repository was created by Amsterdam Intelligence for the City of Amsterdam. See our blog post on this topic for more details.