Assignment 3

Creating a 3D city model from public datasets

Deadline is April 15 at 11:59 pm

Late submission? 10% will be removed for each day that you are late.

The assignment is worth 20% of your final mark.

wireframe

Overview

For this assignment you need to construct a 3D city model of the area of the TU Delft campus by combining two publicly available datasets in the Netherlands. The model must be delivered in the CityJSON format.

You will:

  1. take polygons from a topographic map (BAG), and extrude them to create LoD1.2 buildings. The height will be obtained from a point cloud (AHN3);
  2. reconstruct the terrain of the area. This will be a TIN formed of the AHN3 points (simplified!) and constrained to the buildings footprints; notice that the terrain is not shown in the image above;
  3. reconstruct, in 3D, the trees in the given area. It is up to you to choose how to best segment and reconstruct them (we give some tips below).

While the two required datasets are publicly available via PDOK, we have prepared and extracted the footprints for the area that is relevant for this assignment. You have to download yourself the AHN3 point cloud (sorry it’s just too large!).

Notice that this assignment is more exploratory, and less prescribed, than the 2 previous ones. There are therefore many different workflows/methodologies to produce the CityJSON files. We are interested in the solutions you come up with, those solutions are based on what you have learned so far in GEO1000, GEO1002, GEO1015, and this course. In the time given for this assignment (about 20% * 28h * 5ECTS = 28h per person), we do not expect you to provide a perfect solution; document what you’ve done and report how it could implement (see section below).

You’re allowed for this assignment to work in a group of 3 (and thus submit only one solution for all of you). If you prefer to work alone or in pairs, it’s also fine, but we really do not recommend it.

Discussing your solution with me (Hugo) and your classmates outside your group is very much encouraged (and gives you 1pt actually!). In other circumstances, this would be done in the (Geo)lab, but since this is not an option. In those meetings, each group should describe how they’re attempting to solve the problem, the results that they’re getting (so far) and provide feedback to the other group. Just take this into account: high-level discussions are a great way to improve your solution, but copying/pasting significant parts of the code from other groups will be considered as cheating.

Description of datasets

BAG

The Basisregistraties Adressen en Gebouwen (BAG) is a register of buildings and addresses in the Netherlands. It includes building footprints and some valuable attributes such as the year of construction (bouwjaar).

tudcampus.geojson

(a GeoJSON file is a simple JSON files for 2D GIS data, you can open it with QGIS, like a shapefile)

AHN3 point cloud

The Actueel Hoogtebestand Nederland (AHN) is a national elevation map (point cloud) of the Netherlands that is maintained by the Dutch water boards.

The AHN3 dataset is distributed in the ASPRS LAS format.

You can download the dataset from this PDOK page. Select the correct tile and download the right format (Puntenwolk/LAZ).

Note: Because of the large filesize (~3.5 GB!) it is strongly recommended that you clip it using the provided polygon that delineates the study area. You can do this in a preprocessing step.

Note: In addition, you may want to use thinning in order to make your code run faster during testing and development.

Requirements for the CityJSON output

  1. the output CRS is EPSG:7415
  2. use CityJSON version 1.0
  3. the file you produce must be valid: both according to the schema and the 3D geometries must be valid. This tutorial is helpful.

Building

BAG CityJSON attributes
bouwjaar yearOfConstruction
(calculated from AHN3) measuredHeight
(derived from height) storeysAboveGround

Trees

Terrain

wireframe

Methodology/workflow to use

You are free to use any tools you want to prepare the data, including QGIS, FME, and Python. However, there are some exceptions: tools that perform the whole workfow automatically (eg 3dfier for the buildings, or others you could find online) are not allowed (in doubt, just ask on discord). You have to write the building extrusion code yourself. You need to find and implement yourself the methodology.

The language you use to process the data is up to you, but we recommend using C++ for the AHN3 processing. Last year, for a similar assignment, students (who used Python) had to wait around 24h for results, and some were late because of this! Notice that it’s perfectly fine to perform some tasks with QGIS, then simply implement some in Python, and do the heavy parts in C++.

Some tips for software and libraries:

Marking

The discussion with the other team can be whenever and with whoever you want.

The discussion with Hugo should be either on 2021-03-29 or 2021-03-31 during the contact hours, just book a timeslot there. We will meet in discord geo1004 voice channel.

The report should have the following four sections, and only these. We expect a report of ~12-15 pages (including figures). Focus on the parts where you had the most difficulties, and describe the solution you designed (and discuss potential alternatives that you considered).

1. Overview of the methodology used (25%)

2. Pros and cons of the methodology implemented (15%)

3. Contributions of the members (5%)

4. Feedback from the meeting with the other group (5%)

Further reading (not mandatory, not at the exam, just as references)

  1. Height references of CityGML LOD1 buildings and their influence on applications, 2014, Proceedings of the 9th 3DGeoInfo Conference. By Filip Biljecki, Hugo Ledoux and Jantien Stoter [PDF]
  2. have a look at the software 3dfier for some inspiration.
  3. Topological consistent 3D city models obtained by extrusion, 2011, published in International Journal of Geographical Information Science, Volume 15, nr 4, pages 557-574. By Hugo Ledoux and Martijn Meijers [PDF]
  4. LOD Generation for Urban Scenes, 2015, ACM Trans. on Graphics, 34(3). By Verdie Y, Lafarge F, Alliez P. [PDF]

What to submit and how to submit it

You must hand in one ZIP containing (`student_numbers.zip):

  1. your single CityJSON file
  2. a report in PDF format (not in Microsoft Word please)
  3. the code (several files possible) you wrote to do the assignment. I will not run it per se, but I want to make sure you wrote it yourself and didn’t just use someone else’s code.

Do not submit your assignment by email, but use that surfdrive link.

[last updated: 2021-03-22 09:35]