Home Application Tutorial Documentation
Introduction Resources Methodology 1. 3D Spherical Dome 2. Populating the Dome 3. Projecting the Dome 4. Fisheye Plot Web Development Attribution Download Links

Introduction

This page presents a concise summary about the underlying methodologies behind this web application and it provides links to extended reports, as well as access to the team’s created programming language scripts.

The purpose of this web application is to calculate the Sky View Factor for any location inside the municipality borders of The Hague. Additionally, several functions are implemented that let the user interact with the map canvas of the area, and provide a fisheye plot as an end result.

Our implementation utilizes an adapted version “3D Point Cloud methodology” based on research made by An et al. (2014).

For more in-depth insight, we refer you to either the executive summary or the full report, both are available in the Download Links section.

Resources

AHN3 tiles from PDOK
The point cloud is retrieved from the 'Publieke Dienst op de Kaart', also known as PDOK, the national Dutch portal for a large number of spatial datasets. For this project the point cloud AHN3 is used, which is currently the most recently captured point cloud data in the Netherlands.

The point cloud is split into and stored in smaller tiles. This preprocess is executed by our own open-source programming algorithm, based on Python and several of it's open-source libraries. This script is available for download in the Download Links section.

The point cloud data that PDOK provides, is available in the LAZ (compressed) file format, while our algorithm demands files of the LAS (decompressed) format. In order to convert these files, we use LASzip, a link to LASzip is also available in the Download Links section.
Source: https://www.pdok.nl

Methodology

1. 3D Spherical Dome

3D Dome Model
A 3D hemispherical dome is created around a given location for which SVF needs to be estimated. This dome has a grid-like structure, separated into spherical sectors. For the purposes of this application, it is designed with an 100-meter radius and a resolution of 2 degrees horizontally and 1 degree vertically (totalling over 16 thousand sectors to be accounted). The image on the right shows an example of such a hemisphere, using less total sectors for visualization purposes.
Source: Bourke P. (2001)

2. Populating the Dome

Populating the Dome Grid
The sectors of the dome are populated, based on whether the point cloud’s points are projected through a ray to a corresponding sector of the dome grid. Within the urban environment, vegetation and buildings are considered as the main obstructions. For vegetation, a sector is defined as obstructed if even only one point lies within it.

For buildings, this is also the case, but an additional rule has been made: every sector below an obstructed one is also marked as obstructed. This is done because buildings are usually built straight up from the ground, however exceptions exist. By doing this, we guarantee buildings to be properly displayed as solids, since point cloud data often has incomplete facades of structures.
Source: An et al. (2014)

3. Projecting the Dome

Circular Grid Model
Project the dome grid into two dimensions by means of orthogonal projection. By doing this the dome is turned into a circular grid. Every sector of the grid can be referred to by a set of two numbers: its azimuth (its position in the horizontal direction relative to the north) and elevation (its position in the vertical direction relative to the zenith). In the same way, its projected point can be also related to a sector by its own azimuth and elevation values.
Source: Bourke P. (2001)

4. Fish eye plot

Fisheye View Plot
The populated 2-Dimensional grid is then stylized through an algorithm which is based on matplotlib, a library for Python. The produced result is a multi-colored image resembling a fisheye plot. Obstructions caused by uildings are coloured grey and obstructions caused by vegetation are coloured green. Any unobstructed sector is coloured blue. The image on the right displays such a plot, it may also be noted that the closest obstruction is the one that is displayed in the plot.
Source: Own Work

Web Development

Three Tier Architecture
The web application is constructed based on one of the well-known client-server architectures called three-tier architecture, which includes presentations, logic and data tiers. The presentation is the top level, which is the user interface, this is written using the OpenLayers API and JavaScript codes. The logic tier coordinates the application, which takes care of processes and calculations. All calculations are done using Python, the requests for these processes are sent from the server to Python by making use of AJAX-requests and an intermediate PHP-file. The data tier means the storage of data, which in our case is stored locally on the server.
Source: Own Work

Attribution

The following datasets/services are used in order to run the application. Even if many are licensed by a Creative Commons Zero license, they are still references here so that you can easily find where the data is coming from.
Data Provider Link Creative Commons
Baselayer background Openstreet Map https://www.openstreetmap.org
Municipality Border PDOK https://www.pdok.nl/nl/producten/pdok-downloads/...
Aerial background PDOK https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/...
AHN3 Point cloud PDOK https://www.pdok.nl/nl/ahn3-downloads
Building Footprints PDOK - BAG https://www.pdok.nl/nl/service/wms-bag