Ga door naar hoofdcontent
ArtikelenLoD2 voor alle 10 miljoen BAG-panden in Nederland

LoD2 voor alle 10 miljoen BAG-panden in Nederland

Vrijdag 26 maart 2021Afbeelding LoD2 voor alle 10 miljoen BAG-panden in Nederland

3D-toepassingen gaan vaak gepaard met de wens om gebouwen met dakvormen te modelleren. Na jaren onderzoek en ontwikkeling hebben we in Delft een methode gerealiseerd die volledig automatisch dakvormen (LoD2) reconstrueert uit puntenwolken en 2D-pandpolygonen. Met deze methode hebben we 3D-modellen gegenereerd voor alle 10 miljoen BAG-panden in Nederland, de eerste open 3D-dataset op dit detailniveau. Niet alle toepassingen zijn gebaat bij dit detailniveau. Daarom reconstrueren we in hetzelfde proces ook andere detailniveaus. Het volledig automatisch proces zorgt ook in de toekomst voor consistentie als nieuwe modellen worden geconstrueerd met actuele input-data. Bovendien monitoren we verschillende kwaliteitsparameters die gebruikers kunnen helpen bij de juiste toepassing van de data.

Gebouwen zijn prominente objecten in 3D-stadsmodellen. Gebouwmodellen kunnen op verschillende detailniveaus (Levels of Detail: LoDs) worden gemodelleerd. Het detailniveau van gebouwmodellen is enerzijds afhankelijk van inwinmethode en anderzijds van dataeisen voor een specifieke toepassing.

Figuur 1. Scheveningen in LoD2.2 met de 3DBAG 2.0.

Vaak wordt gedacht dat een hoger detailniveau beter is, omdat hogere LoDs de werkelijkheid beter lijken te representeren. Hogere detailniveaus zijn echter ook complexer (en daarom duurder) om in te winnen en bij te houden. Bovendien leidt het gebruik van modellen op hogere detailniveaus in ruimtelijke analyse niet automatisch tot betere resultaten, terwijl te veel detail een negatieve (en soms zelfs desastreuze) invloed kan hebben op de runtime van analyses. Hierdoor is het soms beter te veel irrelevante details te vermijden. Zo zijn blokmodellen (LoD1) voldoende voor geluidssimulaties en schaduw- en windanalyses. Dakvormen (LoD2) zijn nodig voor bijvoorbeeld het bepalen van de potentie van zonnepanelen. En gebouwmodellen met ramen en deuren (LoD3) zijn nodig voor het berekenen van warmteverlies voor energieberekeningen. Binnen elk LoD zijn weer verfijningen mogelijk.

LoD1.0/2.0 en LoD1.1/2.1 modellen zijn gebaseerd op gegeneraliseerde pand-polygonen en vallen buiten onze scope. Evenals LoD3 modellen (met ramen en deuren) die handmatige bewerkingen vereisen.

Onze nieuwe 3D BAG 2.0 service is een doorontwikkeling van de 3D BAG 1.0 die alleen de LoD1 modellen genereerde en beschikbaar stelde, zie Geo-Info 5-2018. De nieuwe 2.0-versie reconstrueert LoD1.2, LoD1.3 en LoD2.2 modellen uit BAG-panden en een puntenwolk (AHN3) in eenzelfde reconstructie-proces. Voor LoD1 reconstrueert 3D BAG 2.0 twee detailniveaus: modellen die het resultaat zijn van het optrekken van de gehele BAGpolygoon (LoD1.2) en modellen waarbij de 2D-polygoon tot meerdere hoogtes worden opgetrokken wanneer een gebouw één of meerdere hoogtesprongen heeft (LoD1.3), zoals bij kerken met toren of huizen met aangebouwde schuur of garage. Beide modellen zijn relatief eenvoudige representaties en daarom te gebruiken in toepassingen die gebaat zijn bij een lager detailniveau. Maar de LoD1.3 gebouwen zijn wel ingewikkelder om automatisch te reconstrueren, zoals we verderop zullen beschrijven.

Figuur 2. Overzicht van de zes representaties van een BAG-pand in de nieuwe 3D BAG 2.0.

Hieronder beschrijven we de reconstructiemethodes voor LoD1.2, LoD1.3 en LoD2.2, die we zowel in 3D als 2D (+hoogtes) leveren, zie Figuur 2. Al deze reconstructies maken gebruik van de opdeling van de BAG-polygoon in dakdelen en het selecteren van de juiste punten in dit proces. Daarom beschrijven we deze stap eerst.

Opdelen van BAG-polygoon in dakdelen

In dit proces (zie Figuur 3) wordt ieder BAGpolygoon opgedeeld door breuklijnen die worden gedetecteerd op basis van de dakvlakken. Deze dakvlakken worden afgeleid uit de puntenwolk als er minimaal 15 punten deel uitmaken van het vlak (Figuur 3.2). Uitgaande van een gemiddelde puntdichtheid van acht punten per vierkante meter in AHN3, komt dit overeen met dakvlakken van ongeveer minimaal twee vierkante meter. Punten die niet worden toegekend aan een vlak en punten die op muurvlakken vallen worden verwijderd. Er worden twee type lijnen gedetecteerd: grenslijnen en snijlijnen (zie Figuur 3.3). De lijnen worden eerst nog rechtgetrokken, alvorens ze gebruikt worden om het 2D BAG-pand op te delen. Ook ontdubbelen we de lijnen op basis van onderlinge afstand en oriëntatie. De lijn voor iedere nok in Figuur 3.3 wordt bijvoorbeeld drie keer gedetecteerd: een keer als snijlijn en twee keer als grenslijn (voor ieder vlak apart). Met de overgebleven lijnen worden de BAG-polygonen opgeknipt tot een initiële opdeling (Figuur 3.4). Deze opdeling kan erg complex zijn doordat er veel kleine vlakken kunnen ontstaan uit de intersecties van de lijnen. Daarnaast is het in de praktijk vaak lastig om aan ieder vlak het juiste 3D-dakvlak toe te kennen wat nodig is om er uiteindelijk een 3D-model van te maken. Dit heeft onder andere te maken met occlusie-effecten in de puntenwolk. Onze oplossing hiervoor is het toepassen van een zogenaamde ‘graphcut’ optimalisatieprocedure. Hierbij worden dakvlakken toegewezen aan de initiële opdeling, waarbij de totale fout met de inputpuntenwolk en tegelijkertijd de totale lengte van de edges tussen vlakken van een ander dakvlak worden geminimaliseerd. Dat laatste zorgt ervoor dat de complexiteit (met andere woorden het aantal vertices en edges) zo klein mogelijk wordt gehouden. Het resultaat is de zogenaamde finale opdeling (Figuur 3.5). Dit is de optimale balans tussen een maximale nauwkeurigheid ten opzichte van de puntenwolk en een minimale complexiteit. De overgebleven vlakken in de finale opdeling noemen we ‘dakdelen’.

LoD2.2

Figuur 3. Het LoD22 reconstructieproces in zes stappen. 1) BAG polygoon + AHN3 maaiveld en gebouwpunten. 2) dakvlakdetectie. 3) lijndetectie. 4) lijnprojectie en -regularisatie (initiële opdeling). 5) finale opdeling na optimalisatie/toekennen dakvlakken; vergelijk kleuren met (2). 6) LoD2.2 3D mesh.

De geïdentificeerde dakdelen worden in de LoD2.2 reconstructie opgetrokken vanaf het maaiveld tot een 3D-mesh (Figuur 3.6). De mesh bestaat uit drie typen vlakken: het grondvlak, de dakvlakken en de muurvlakken. De hoogte van het grondvlak wordt, net als voor de andere detailniveaus, gebaseerd op het laagste punt rond het gebouw, berekend als het 5e percentiel van alle grondpunten die zich binnen een 4m-buffer van het gebouw bevinden. Hiervoor zou ook een ‘intersection curve’ van het terrein kunnen worden gebruikt. Het optrekken gebeurt zo dat er geen inwendige muren ontstaan en de mesh topologisch ‘klopt’.

LoD1.3

De LoD1.3 reconstructie maakt gebruik van dezelfde 2D-opdeling als de LoD2.2 reconstructie. Hierbij worden eerst nog aangrenzende dakdelen met een hoogtesprong kleiner dan 3 meter in een iteratief proces samengevoegd. Dit komt overeen met (ongeveer) de hoogte van een verdieping. De iteratie begint bij de kleinste hoogtesprong en stopt wanneer er geen hoogtesprongen kleiner dan 3 meter over zijn. Hierna wordt voor ieder deel een extrusiewaarde berekend, de zogenaamde referentiehoogte. Ieder dakdeel wordt vervolgens naar deze referentiehoogte opgetrokken.

De referentiehoogte kan variëren afhankelijk van de statistische methode die wordt gebruikt, maar ook afhankelijk van de data-eisen van een specifieke toepassing (bijvoorbeeld goot-, nok-, maximale hoogte). Om deze referentiehoogtes te standaardiseren en de gebruiker de keuze te laten welke referentiehoogte zij/ hij wil gebruiken, berekenen we vier referentiehoogtes per dakdeel op basis van de hoogtepunten (minimum en maximum; 50e en 70e percentiel). De LoD1.3 modellen worden in 3D gereconstrueerd op basis van het 70e percentiel, waarbij ook weer inwendige muren worden voorkomen. Daarnaast genereren we een 2D+hoogtes-bestand waarbij de verschillende referentiehoogtes als attribuut worden toegekend. Via het oorspronkelijke BAG-ID kan worden achterhaald welke 2D-dakdelen tot één specifiek BAG-pand behoren. Deze 2D+ hoogtegegevens bieden de mogelijkheid om de 2D-grondvlakken tot een eigen gewenste referentiehoogte op te trekken.

Figuur 4. Voorbeelden van overlappende/ondergrondse BAG-panden (rood). Luchtfoto 2020 25 cm RGB open data. Copyright Het Waterschapshuis

LoD1.2

Voor de LoD1.2 modellen berekenen we de referentiehoogtes op dezelfde manier als voor LoD1.3, dat wil zeggen: op basis van de punten die op de dakvlakken zijn gedetecteerd. Maar hiervoor nemen we de gehele BAG-polygoon als basis. Ook voor LoD1.2 genereren we zowel de 3D-blokmodellen op basis van het 70e percentiel van de hoogtepunten die op de dakvlakken van het betreffende BAG-pand vallen, als de 2D+ referentie-hoogtegegevens.

Ondergrondse/overlappende BAG-panden en kassen

De BAG-polygonen beschrijven de maximale omtrek van gebouwen. Dat betekent dat eventuele ondergrondse delen ook binnen de polygoon vallen, zie Figuur 4. Uiteraard moeten deze delen niet worden meegenomen in de 3D-reconstructie. We identificeren drie verschillende situaties:

  • Het gebouw staat op de grond
  • Het gebouw bevindt zich geheel ondergronds (zoals een metrostation of ondergrondse parkeergarage)
  • Het gebouw overlapt in 3D met een ander object, dat wil zeggen met de weg, water of een ander gebouw

De eerste twee gevallen worden geïdentificeerd in een voorbewerking, waarbij het BAG-polygoon wordt vergeleken met de alpha-shape van de (AHN-)hoogtepunten van dat gebouw. De laatste categorie gebouwen wordt gedetecteerd door de BAG-panden te overlappen met de andere BAG-panden en de BGT-klassen weg en water. De resulterende classificatie wordt toegekend aan de gereconstrueerde objecten.

Gebouwen die zich geheel ondergronds bevinden (2e categorie) worden niet meegenomen bij de 3D-reconstructie. Gebouwen die zich deels ondergronds bevinden worden wel meegenomen en hun ondergrondse delen worden gedetecteerd in het BAG polygoonopdelingsproces aan de hand van maaiveldpunten en vervolgens afgesneden (Figuur 3.5 groene deel). Deze afgesneden ondergrondse delen worden wel als zodanig meegeleverd in de totale dataset.

Figuur 5. LoD2.2 reconstructie van een kas blijkt moeizaam. a) AHN3-puntenwolk (groen: maaiveldpunten, bruin gebouwpunten). b) 2.5D hoogteveld met maximale hoogte voor iedere pixel. c,e) LoD2.2 reconstructie resultaat. d) Luchtfoto en BAG-polygoon.

Kassen behandelen we ook apart omdat de glazen daken ervan lastig met lidar in te meten zijn en daardoor niet goed in de AHN-puntenwolk zitten. Door de spiegelende werking van het glasoppervlak komen niet alle reflecties terug in de laserscanner. Het resultaat is dat grote delen van het dak ontbreken in de puntenwolk, terwijl de vloer onder het glas wel is ingemeten. Deze delen worden dan incorrect als ‘ondergronds’ gemarkeerd en van het gebouw afgeknipt (zie Figuur 5). Daarnaast hebben kassen en ook warenhuizen vaak een reconstructieproces langzaam voor deze panden. Daarom selecteren we kassen en warenhuizen op basis van hun TOP10NL-classificatie en trekken we deze in hun geheel op vanaf de oorspronkelijke BAG-polygoon tot aan de berekende hoogte.

Implementatie en openlijke beschikbaarheid via download en 3D-viewer

De reconstructie van alle hierboven beschreven LoD-versies (zie Figuur 6) vindt plaats via een tiling-aanpak, waarna de resultaten in een PostGIS-database worden weggeschreven.

Ons tiling-schema is een quadtree; iedere tile is vierkant en de afmeting is zodanig dat iedere tile ongeveer 3500 gebouwen bevat. Dit zorgt ervoor dat de reconstructietijd per tile ongeveer gelijk is en ook dat de tiles ongeveer even groot zijn om te downloaden. Het reconstrueren van de 10 miljoen modellen in Nederland duurt circa 40 uur op een enkele machine. Vanuit de database worden tiles in verschillende formaten gegenereerd die door gebruikers kunnen worden gedownload. We hebben veel tijd gestoken in het optimaliseren van de automatisering en efficiëntie van het proces zodat we snel een nieuwe iteratie kunnen draaien bij verbeteringen in het algoritme of wanneer er nieuwe brondata beschikbaar zijn.

Figuur 6. Gebouw van de faculteit Elektrotechniek, Wiskunde & Informatica op de TU Delft-campus. AHN3-puntenwolk en reconstructie in LoD1.2, LoD1.3 en LoD2.2.

Voor de visualisatie en bevraging van de diverse representaties, en het downloaden ervan, hebben we een website met een 3D-viewer ontwikkeld (www.3dbag.nl) die ook moest kunnen werken op minder krachtige apparaten zoals mobiele telefoons. Off-theshelf- oplossingen voldeden niet aan onze eisen en daarom hebben we een eigen oplossing ontwikkeld. De data zijn als open data beschikbaar en te downloaden in de volgende formaten: comma-separated values (CSV), GeoPackage, PostGIS backup, Wavefront OBJ en CityJSON (www.cityjson.org). De viewer bevat ook een terugmeld-functie waarmee gebruikers eventuele fouten in de data eenvoudig kunnen rapporteren zodat we het proces nog verder kunnen verbeteren.

Kwaliteit

Omdat de automatische reconstructie wordt toegepast op de gehele BAG-dataset, is het handmatig of visueel checken van de kwaliteit voor ieder gebouw niet meer mogelijk. Kwaliteitsinformatie is nodig om bijvoorbeeld een slechte reconstructie of een uitzonderingssituatie op te sporen waarmee het algoritme nog geen rekening houdt. We monitoren gedurende het gehele proces kwaliteitsinformatie die we toekennen aan de uiteindelijke modellen, zodat deze informatie toegankelijk wordt voor de gebruiker. Met deze informatie hebben we tijdens de ontwikkeling de reconstructie continu verbeterd en kunnen dit bij de doorontwikkeling blijven doen.

De kwaliteitsinformatie die we monitoren en toekennen aan de modellen bestaat uit de volgende informatie:

Kwaliteit van de puntenwolk

Het aantal punten beschikbaar per pandpolygoon of dakdeel kan variëren van enkele tot honderden of duizenden punten. AHN3 kan gaten bevatten, bijvoorbeeld veroorzaakt door occlusie, water/ramen op de daken of de scanhoek bij inwinning. Soms is ook de AHN3 niet goed geclassificeerd in grond- en gebouwpunten. Het aantal beschikbare punten en de verdeling over het dakvlak heeft grote invloed op de nauwkeurigheid van de reconstructie. Om hier een idee van te krijgen berekenen we het aantal gebruikte punten en de oppervlakte binnen het pand, waarvoor geen maaiveld- of gebouwpunten beschikbaar zijn (het no-data-oppervlak).

Temporele mismatch tussen AHN en BAG

BAG-panden die nieuwer zijn dan de AHN kunnen niet in 3D worden gereconstrueerd. Deze nieuwe panden worden niet meegenomen in het constructieproces maar meegeleverd met hun oorspronkelijke 2D-geometrie. We kunnen deze temporele informatie niet tot op de dag nauwkeurig bepalen. Zo bevat AHN3 alleen de datum dat een specifieke tegel is gemaakt; niet de precieze inwindatum per punt. Daarom bepalen we een middenklasse (‘onzeker’) voor die gebouwen waarvoor de punten in hetzelfde jaar ingewonnen zijn als het bouwjaar van het pand. De verdeling over deze drie klassen in de dataset van januari 2021 is 4% verouderd, 1% onzeker en 95% actueel.

Daktype

Aan de hand van de hoeken van de dakvlakken, bepalen we het daktype. We onderscheiden de volgende waarden (tussen haakjes de waarden voor januari 2021):

2 – Dak met ten minste één schuin dakvlak (63,8%)

1 – Dak met uitsluitend horizontale dakdelen (8,1%)

0 – Dak bestaande uit één horizontaal dakvlak (26,3%)

-1 – Er is geen enkel dakpunt gevonden voor dit gebouw (1,5%)

-2 – Er kon geen dakvlak worden gereconstrueerd, ondanks aanwezige punten (0,3%)

Andere kwaliteitsfactoren

Ten slotte bepalen we een aantal andere kwaliteitsfactoren die we toevoegen aan de modellen, zoals de kwadratisch gemiddelde fout (RMSE) met de puntenwolk van iedere reconstructie, de maximale fout tussen de gereconstrueerde mesh en de input-puntenwolk en eventuele geometrische invaliditeitscodes van ieder pand, zowel in 2D als in 3D. De RMSE voor LoD2.2 is minder dan 36 cm voor 95% van de modellen en kleiner dan 10 cm voor 75% van de modellen, berekend op de hele dataset.

3D Basisvoorziening Kadaster

Figuur 7. Het Paleis op de Dam. Puntenwolken AHN3 en proefbestand AHN4 en bijbehorende LoD2.2 reconstructies. Door de hogere puntdichtheid in AHN4 zijn er beduidend meer dakkapellen gereconstrueerd.

De 3D BAG-service is deels in onderzoeksprojecten ontwikkeld, zoals in projecten gefinancierd door de Nederlandse Organisatie voor Wetenschappelijk Onderzoek, de European Commission en Amsterdam Institute of Advanced Metropolitan Solutions (AMS). Later zijn de algoritmes verbeterd in samenwerkingen met partners zoals RIVM, RWS en Kadaster. De stabiele versies van onze 3D BAG-ontwikkelingen vinden hun weg naar de 3D Basisvoorziening die door het Kadaster is gerealiseerd (www.pdok.nl/3d-basisvoorziening). Tot nu toe was dit het geval tot en met LoD1.3 omdat ons algoritme in eerste instantie daarvoor was geoptimaliseerd.

In de nieuwe versie van de 3D BAG-service hebben we verdere verbeteringen aangebracht specifiek voor een beter LoD2.2 resultaat. Dit hoger detailniveau laat geometrische details zien die bij de versimpelde LoD1.3 reconstructie verborgen bleven. Naast het AHN (zoals in ons onderzoek) maakt het Kadaster gebruik van puntenwolken verkregen uit jaarlijks ingewonnen luchtfoto’s. Deze meer actuele puntenwolken worden in de 3D Basisvoorziening gebruikt voor de panden nieuwer dan het AHN. In onze projecten met partners hebben we er ook voor kunnen zorgen dat de data beter aansluiten op toepassingen in de praktijk. Een belangrijke toepassing is geluidssimulatie. Voor deze toepassing hebben we onlangs samen met het Kadaster en RIVM een landelijke dataset gegenereerd die aansluit op de 3D Basisvoorziening (www.pdok.nl/3d-input-datavoor-geluidssimulaties-versie-0.3.1). Het beheren van een eigen versie van de 3D BAG-service in Delft maakt het mogelijk het proces te blijven verbeteren in ieder afzonderlijk onderdeel van de keten, maar ook in de algehele samenhang: van inputdata voorbewerken tot reconstructie, viewing en toepassing.

Tot slot

De 3D BAG-service is voor ons ‘3D Geoinformation’- onderzoek een ideale databron om te experimenteren en testen met allerlei 3D-toepassingen. Ook de eerste versie van 3D BAG werd door ons – maar ook door anderen – al gebruikt voor toepassingen variërend van visualisaties tot geluidssimulaties, windstroommodellering, energieverbruikberekeningen, taxatie, GNSS positioning en stedelijke planning. Daarnaast gebruiken we de service voor meer fundamentele vragen. Hoe kunnen bijvoorbeeld verschillende (geometrische of temporele) versies van 3D-data worden beheerd? Wat is het optimale detailniveau voor een bepaalde toepassing als afweging tussen significantie/relevantie van geometrisch detail en procestijd? En hoe kunnen de verschillende onderdelen in de keten zo optimaal mogelijk op elkaar worden afgestemd? Op basis van deze ervaringen en terugmeldingen zullen we de 3D BAG-service verder verbeteren en optimaliseren voor gebruikers en toepassingen. Dat kan gaan om generieke verbeteringen zoals het vullen van no data-gebieden in de puntenwolk met behulp van AI, maar ook om betere afstemming op gebruikerseisen, zoals het optimaliseren van detailniveau en verrijken van de modellen met bijvoorbeeld relevante informatie voor energietoepassingen (potentie van zonnepanelen) of schattingen van het aantal verdiepingen per pand. Zoals Figuur 7 laat zien zal het gereedkomen van AHN4 met een hogere puntdichtheid ook weer nieuwe mogelijkheden met zich meebrengen.

De 3D BAG 2.0 is mede mogelijk gemaakt door financiering van de European Research Council (ERC) onder het ‘European Union’s Horizon 2020 research and innovation programme’ (Grant agreement No 677312 UMnD).

Ravi Peters, 3D Geoinformation, TU Delft, tevens werkzaam bij de start-up 3DGI, r.y.peters@tudelft.nl

Balázs Dukai, 3D Geoinformation, TU Delft, tevens werkzaam bij de start-up 3DGI, b.dukai@tudelft.nl

Stelios Vitalis, 3D Geoinformation, TU Delft, s.vitalis@tudelft.nl

Jordi van Liempt, 3D Geoinformation, TU Delft, j.n.h.vanliempt@tudelft.nl

Jantien Stoter, 3D Geoinformation, TU Delft, tevens werkzaam bij Kadaster en Geonovum, j.e.stoter@tudelft.nl

Auteurs

Ravi Peters ,
Balázs Dukai ,
Stelios Vitalis ,
Jordi van Liempt ,
Jantien Stoter