Amsterdam-AI-Team / Urban_PointCloud_Sidewalk_Width

Measuring sidewalk widths for Amsterdam using Urban Point Clouds and cadastral data.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Measuring sidewalk widths for Amsterdam

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.

Point cloud Objects above ground Static objects

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.

Sidewalk data with obstacles Centerlines sidewalk_width

Example: (left) M3C2 results overlayed on sidewalk polygons from topographical map. (middle) Centerline segments. (right) Width calculated along centerline segments.


Folder Structure


Installation

  1. Clone this repository:

    git clone https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Sidewalk_Width.git
  2. Install the dependencies:

    pip install -r requirements.txt
  3. 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
  4. Finally, install cccorelib and pycc by following the instructions on their GitHub page. Please note, these two packages are not available on the Python Package Index (PyPi).

  5. 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 the cccorelib and pycc packages.

  6. Check out the notebooks for a demonstration.


Usage

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.

About

Measuring sidewalk widths for Amsterdam using Urban Point Clouds and cadastral data.

License:GNU General Public License v3.0


Languages

Language:Python 100.0%