geometalab / aoi-osm

Areas-of-Interest (AOI) for and with OpenStreetMap.
BSD 3-Clause "New" or "Revised" License
25 stars 7 forks source link
algorithm analysis areas-of-interest docker generator jupyter openstreetmap postgresql python spatial-analysis sql tourism urban-planning

Areas-of-Interest for and with OpenStreetMap

About this repository

This repository contains the (minimally) maintained source code which mainly generates Areas-of-Interest (AOI) for and with OpenStreetMap. This code was initially developped during a master thesis by Philipp Koster (2018) at Geometa Lab HSR.

There are following main directories with individual READMEs:

The simple web app is deployed also online, but there is no warranty about the availability of it. Access can be given on demand.

This software is mainly using PostgreSQL/PostGIS (SQL) and Python, accompanied with the OSMnx library for analyzing the street network.

How to install

See https://github.com/geometalab/aoi-osm/blob/master/webapp/README.md

TODO.

About Areas-of-Interest

The objective of Areas-of-Interest (AOI) is to convey visual information to a user (map reader or tourist) where there are areas are of "high interest" regarding facilities like shopping, eating, accomodation, sightseeing or leisure.

The use of AOI comprises touristic applications as well as urban planning, location-allocation analysis and site selection. Inspired by biology AOI are also used to identify completeness of OpenStreetMap (POI) data by comparing the accumulation of POI (within AOI) with species discovery curves (aka negative exponential functions) (Clough 2018).

The preferred spatial resolution of this dataset is between 10 and 2 meters on the ground (zoom levels from 16 to 14) which is around the scale of 1:5000 (general plan).

A main input of AOI are Points-of-Interest (POI). Typical POI are restaurants, bars, shops or museums. While POI are mostly punctual, the geometry of AOI is of type area or polygon. In fact, AOI can be also based on the street network and potentially on more information like human location tracks. Google introduced 2016 AOI in their map products and visualized it as orange shades. Google is reportedly using human location tracks to derive information of "high activity" but did not disclose the algorithms behind their AOI layer.

About this approach

The goal of this project is to produce AOI with a reproducible process which is based on open data, specifically POI and pedestrian routing data from the OpenStreetMap crowdsourcing project. The AOI are defined here as

"Urban area at city or neighbourhood level with a high concentration of Points-of-Interests (POI) and typically located along a street of high spatial importance".

Roughly five processing steps are currently used to generate these AOI:

  1. filtering relevant POI (taking POI from OpenStreetMap as input),
  2. spatially clustering selected POI using the DBSCAN algorithm,
  3. creating areas using concave hull algorithm,
  4. extend the resulting areas with a certain spatial buffer based on a network centrality algorithm (taking routes as input),
  5. sanitizing the AOI e.g. by removing water areas and eliminating sliver polygons.

The parameters eps and minPts of the DBSCAN algorithm have been heuristically adjusted and are calculated in a locally adapted way.

AOI of Zürich

Figure: AOI of the city center of Zurich (Switzerland).

References

To reference this work you can use the DOI mentioned below.