I'm very new to GIS and doing this for a university project. For evaluating Solar Potentials on Building Roofs I want to use QGIS 3 (the UMEP Plugin, with SEBE tool). Amongst other data I need a Digital Surface Model preferably as a .tif file. For that I already have elevation data but where I'm really struggling are the CityGML files. The goal is to get moderately detailed information about the solar potential on differently shaped roofs in their geographic environment, hence roof shapes, position towards the sun and shades are very important.

Here is my problem: I want to merge the CityGML (LoD2) buildings on the elevation map and from that create a 2D Digital Surface Model, with accurate representation of heights of the roofs. The DSM should reflect the shaping of the roofs not only cubics or similar.

I though about gdal_rasterize but am convinced it won't help me too much as it doesn't work for CityGML as far as I'm concerned. I also experimented a bit with CityJSON but at the moment I'm running out of ideas on what to google.

The building data is from this page (unfortunatelly in German): https://www.hannover.de/Leben-in-der-Region-Hannover/Verwaltungen-Kommunen/Die-Verwaltung-der-Landeshauptstadt-Hannover/Dezernate-und-Fachbereiche-der-LHH/Baudezernat/Fachbereich-Planen-und-Stadtentwicklung/Geoinformation/Open-GeoData/3D-Stadtmodell-und-Gel%C3%A4ndemodell/Digitales-3D-Stadtmodell

1 Answer 1


This is still something that is not straight-forward in QGIS and other GIS-softwares. I found a solution using FME and the transformer called PointCloudCombiner. This tool sets out point in 3D space based on LOD2 vector polygon objects. Please let me know if you find another solution.

  • I couldn't really find an "of the shelf" solution for it either. Eventually I went for a quick-and-dirty approach, where I extracted all roof vertices from the json file. Then I made an interpolation for every roof tile and later merged them. It worked alright, with some converting problems. The biggest problem was a huge amount of files being created during the process. All in all, I can't really recommend my own solution, but works if nothing else does.
    – dungu_byte
    Commented Jan 30, 2021 at 10:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.