Potential research orientation (GEO5010) topics



Adding trees in City4CFD

City4CFD is an open-source tool that automatically reconstructs 3D city geometries tailored for microscale urban flow simulations. Its capabilities include reconstruction at multiple levels of detail, as well as including semantic surfaces, best practice guidelines set-up, and even multi-level geometry based on distance from point of interest.

This MSc thesis aims to add to City4CFD the automatic reconstruction of trees, this would facilitate their use within microclimate urban flow simulations with OpenFOAM. To start this topic, you would need to delve into the work from De Groot 2020, and explore how his approach to reconstruct trees at a different level of detail could be improved and implemented within City4CFD.

If you choose this topic, you can expect to learn about automatic geometry reconstruction and GIS data handling. To run CFD for testing can be optional. Programming experience and interest is an advantage for this topic. Your work will require the implementation of source code (in C++ preferably, but Python or others could be used).

Contact: Clara Garcia-Sanchez, Hugo Ledoux


Add CityJSON export to QGIS plugin

The current QGIS CityJSON plugin, developed by us, can only import CityJSON files to QGIS.

This project would add an export function to it, or at least explore how it could be done and start the work.

All coding is in Python.

Contact: Hugo Ledoux

Implement a cjio operator to de-triangulate CityJSON files

Files containing objects that are triangulated are often easier work with (the triangle is the primitive for visualisation, and the resulting geometries do not contain inner rings) but some use-cases are hindered by the amount of surfaces.

The aim of this project is simple: add an cjio operator that will de-triangulate (or un-triangulate?) a given CityJSON files, and allows us to store a new file where the same information is stored coplanar triangles are merged into polygons (potentially with inner rings).

Textures and materials (if any) also need to be handled.

If successful, the new operator would be added to cjio. All coding is in Python.

Contact: Hugo Ledoux


Add support for CityJSON in BlueSky

BlueSky is an open Air Traffic Simulator that is being actively used to perform research on Air Traffic Management and Air Traffic Flows. It would be extremely beneficial for such simulations to take advantage of 3D city models by adding support for CityJSON loading.

In this project you’ll have to implement parsing of CityJSON for the needs of BlueSky. The tool is open source and is written in Python. There will be support from the developers of the tool in the process.

You’ll improve your programming skills in the process and learn a lot about manipulating 3D geometry.

Contact: Stelios Vitalis

Automate generating blockMesh files for OpenFOAM

Generating blocks for CFD meshes is quite a trivial task that still takes quite some manual effort resulting in wasted time. The assignment’s objective is to automatically generate the OpenFOAM blockMesh dictionary based on some user defined parameters (such as number of blocks, size of domain, etc.). It could be through Shell or Python, but optimally it will be an online Javascript application, similar to this [example] (https://turfjs.org).

Contact: Nadine Hobeika

Tool for automatic collection and set-up of 3D point clouds

When reconstructing automatically the geometries of urban scenarios (eg all the buildings with the terrain), the first step is to collect the necessary point clouds for the area of interest. This process is generally done mostly manual, which can require a few hours of work to have the optimal location extension and point cloud density. With this research assignment we would like to develop an (online) tool that automatically collects the desired point cloud in the Netherlands based on municipalities and/or areas of interest. The tool could be a Python package (and potentially use click) that fetches the AHN3 tile required from PDOK-AHN and could for instance filter the appropriate LAS classes and/or thin the datasets.

And online tool hosted somewehere (by using the Python framework flask) would be an alternative.

Contact: Hugo Ledoux and Ivan Pađen