Assignment 3-resit
Reconstructing LoD1.3 buildings
Deadline is June 17 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.
Overview
For this assignment you need to reconstruct some of the buildings on the TUDelft campus as LoD1.3 model (this is also described in the lesson/handout 4.1 of the course). You have to do this by extruding the buildings’ footprints (from the BAG) based on the AHN3 dataset. Your resulting buildings must be delivered in the CityJSON format.
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. Reconstructing the LoD1.3 is a difficult task, and we do not expect you to produce perfect results. Spend the time allocated for this assignment (20% * 140h = 28h) and aim at producing the best results you can.
You have to work alone for this assignment.
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
).
(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
- the output CRS is EPSG:7415
- use CityJSON version 1.0
- the file you produce must be valid: both according to the schema and the 3D geometries must be valid. This tutorial is helpful.
- validation of geometry: use val3dity.
- validation of the structure of a CityJSON file: this can be done with cjio and the function “validate”.
- each of the footprints you extrude will become a Building;
- the geometry of the building must be a solid valid according to ISO 19107;
- the LoD of the building is
"lod" = 1.3
; - the building ground surface should be at the elevation 0.0m;
- the following semantics surfaces should be assigned to the surfaces of the solid:
"RoofSurface"
,"GroundSurface"
, or"WallSurface"
; - the ID of each Building (the key to be used to index it in the CityJSON file) is the attribute
identificatie
; - the following three attributes must be stored:
BAG | CityJSON attributes |
---|---|
bouwjaar |
yearOfConstruction |
(calculated from AHN3) | measuredHeight |
(derived from height) | storeysAboveGround |
Methodology/workflow to use
You have to code yourself the solution, but you are free to use the language/libraries of your choice. Solutions that solve the issue automatically for you are not allowed, in doubt just ask me (Hugo). You need to submit your code, which I will run.
You can use existing libraries for RANSAC or plane extraction.
You need to find and implement yourself the methodology.
Some tips for software and libraries:
- to clip and/or convert the AHN3 point cloud to other formats (eg LAS), use the utility
las2las.exe
from the LAStools (in the/bin/
folder, it’s a command-line interface). - to handle GIS geometries and their attributes with Python, we recommend Fiona.
Marking
- 50% the created CityJSON file: how complete it is? errors? everything has been taken into account? etc
- 30% the quality of the report you submit
- 20% the code: can I run it? Is there a
README.txt
explaining me how to run it? etc.
The report should have the following four sections, and only these. We expect a report of ~10 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%)
- give the overview of your methodology with for instance a flowchart; draw.io allows to make simple and nice ones for free.
- explain each of the main steps you took
- what classes of the AHN3 point cloud do you use and how? How well does it match with the BAG polygons? Are there any temporal mismatches?
- there is no need to describe in details the obvious parts (eg reading of the files, selecting features based on attributes, etc.).
- what methodology did you use to reconstruct in 3D the trees? In hindsight, and if you had had more time: which methods would you have used?
2. Analysis and discussion of the results
- with figures pointing out the good results, and the bad ones
- aiming to explain why it went bad
3. Pros and cons of the methodology implemented (15%)
- discuss the quality of the result you obtained
- if you had to redo it, would you do it differently?
- if your resulting file is not valid (syntax and/or geometry), explain us what caused this.
What to submit and how to submit it
You must hand in one ZIP containing (`student_numbers.zip):
- your single CityJSON file
- a report in PDF format (not in Microsoft Word please)
- the code (several files possible) you wrote to do the assignment. This should contain a
README.txt
explaining me how to run it. Do not send the LAZ file please! Put the crop somewhere and give me the link.
Submit your assignment by email <h.ledoux@tudelft.nl
>, ideally put it on Dropbox and send me the link by email.
[last updated: 2021-05-07 08:14]