jvanderveldenESRI-NL-esridist

Woningtyperingsanalyse op de BAG

Blog Post created by jvanderveldenESRI-NL-esridist Employee on Nov 2, 2018

We krijgen van gebruikers regelmatig het verzoek voor een dataset waarin woningtypering is terug te vinden. We hebben dit onlangs verder onderzocht en hoewel we op korte termijn geen plannen hebben om hier een landsdekkende dataset van te maken, wil ik u graag laten zien hoe u een dergelijke dataset zelf zou kunnen maken met onze BAG gegevens.

 

Deze analyse bestaat uit een aantal stappen. We gaan aan de hand van omliggende panden bekijken of een pand vrijstaand is en zo niet hoeveel aangrenzende buurpanden het pand dan heeft om te bepalen of het een hoekhuis of tussenwoning is. Maar de BAG bevat natuurlijk niet alleen woonruimtes, dus we gaan de verblijfsobjecten gebruiken om hier meer duidelijkheid in te krijgen. Deze verblijfsobjecten gaan we ook gebruiken om panden met meerdere verblijfsobjecten, zoals appartementen, te onderscheiden. Aan het einde van dit blog zal ik een overzicht plaatsen van links met meer informatie.

 

Allereerst beginnen we met het downloaden van de BAG data. U kunt deze maandelijks downloaden uit onze Datasets-groep in ArcGIS Online. De reden dat ik hier de file geodatabase en niet de dagverse service gebruik is omdat ik de attributen ga bewerken. Analyses op een feature service zijn wel mogelijk, maar bewerkingen (zoals in attributen) niet.

 

Stap 1: Het identificeren van panden zonder woonfunctie

Uit de BAG file geodatabase heb ik een clip gemaakt van de panden en verblijfsobjecten in de gemeente Best, Noord-Brabant. Ondanks dat de naam al aangeeft dat dit de ‘beste’ locatie is voor een testdataset, is het ook nog eens het dorp waar ik zelf ben opgegroeid. Dit maakt het verifiëren van de uitkomst van de analyse een stuk eenvoudiger.

 

We zijn geïnteresseerd in de panden met verblijfsobject(en) met gebruiksdoel ‘Woonfunctie’. Verblijfsobjecten kunnen meerdere gebruiksdoelen hebben. In onze BAGv2 data (zie ook mijn eerdere blog) hebben we deze gebruiksdoelen uitgesplitst in aparte attributen, zodat hier eenvoudiger analyses op uit te voeren zijn. Elke kolom geeft met een 1 of een 0 aan of het gebruiksdoel wel of niet aanwezig is in dit verblijfsobject.

 

 

En daar gaan we gebruik van maken. Dus eerst maak ik een selectie op attribuut op de verblijfsobjecten:

 

 

 

Ik exporteer deze selectie naar een nieuwe feature class Verblijfsobject_Best_Woning, omdat we hier later ook nog gebruik van gaan maken.

 

Vervolgens voeg ik een nieuw veld toe aan mijn Pand feature class genaamd ‘Woningtype’. Hier sla ik later de uitslag van mijn analyse in op. Dit veld zal bestaan uit de volgende categorieën:

  • Vrijstaande woning
  • Hoekwoning
  • Tussenwoning
  • Appartement
  • Geen woning

 

We beginnen met de laatste categorie. Met een selectie op locatie selecteer ik alle panden die geen verblijfsobjecten met gebruiksdoel ‘Woonfunctie’ hebben. Dit doe je door de panden te selecteren die juist wel kruizen met een verblijfsobject met woonfunctie, maar het vinkje bij “Invert spatial relationship” aan te zetten, waardoor de selectie wordt omgedraaid.

 

 

 

Vervolgens gebruik ik de Calculate Field tool om voor deze panden hun nieuwe Woningtype-attribuut te vullen met de waarde ‘Geen woning’.

 


 

Vervolgens exporteren we ook deze features naar een nieuwe dataset en verwijderen we deze features uit onze Panden dataset. Veel van de panden die geen woning zijn, zijn garages of schuurtjes. Dit is een soort pand wat vaak grenst aan een hoekhuis of vrijstaande woning. Onze volgende stap is om een analyse te maken van het aantal aangrenzende panden waarop we de woningtypering baseren. Als we deze features dus in de dataset zouden laten zitten dan worden deze woningen onjuist gecategoriseerd als tussenwoning of hoekhuis. We zullen deze panden zonder woonfunctie later weer toevoegen aan de dataset.

 

Stap 2: Het identificeren van het aantal aangrenzende panden met woonfunctie

Voor het identificeren van het aantal aangrenzende panden gebruiken we de Polygon Neighbours tool. Deze tool berekent hoeveel aangrenzende panden een pand heeft en welke dat zijn. De uitkomst wordt gegeven in een tabel. We zetten hierbij het vinkje bij “Include both sides of neighbor relationship” aan, zodat beide panden die een buur hebben worden meegenomen en niet alleen het eerste pand die een buur heeft.

 

 

De tabel die gecreëerd wordt door deze tool bevat een aantal kolommen:

 

 

Voor ons doel om het aantal aangrenzende panden te weten is alleen de src_OBJECTID interessant. Deze kolom geeft de object ID’s aan van de panden die een of meerdere aangrenzende panden heeft. Per aangrenzend pand wordt het object ID eenmaal weergegeven, dus voor meerdere buren staat het object ID er meerdere malen in.

 

Om te weten hoeveel aangrenzende woningen een pand heeft moeten we de unieke src_OBJECTID dus tellen. Dit doen we met de Frequency tool. Ook deze tool geeft een tabel als uitkomst.

 


 

 

Met deze tabel kunnen we de frequentie van het aantal buurpanden toevoegen aan de Panden dataset door de src_OBJECTID van de frequentie tabel te linken aan het OBJECTID van de Panden dataset.

 

Deze informatie geeft ons informatie over welke panden twee of meerdere buren hebben, dit zijn tussenwoningen. We selecteren deze panden op attribuut en gebruiken de Calculate Field tool weer om deze de waarde ‘Tussenwoning’ te geven. Hetzelfde doen we voor de hoekwoningen; deze woningen hebben één buur.

 


 

Stap 3: Het identificeren van appartementen en vrijstaande woningen

Het klinkt logisch dat de panden zonder aangrenzende woningen automatisch vrijstaande woningen zouden zijn (deze panden hebben een Frequency van “<Null>”), maar helaas is dit niet het geval. Flatgebouwen worden namelijk als één pand aangeduid in de BAG, waarna er meerdere verblijfsobjecten (de appartementen zelf) worden toegevoegd. We zullen dus voor de panden zonder buren moeten bepalen hoeveel verblijfsobjecten er in het pand zijn ondergebracht. Als dit er meerdere zijn classificeren we het pand als een appartement. Dit hoeven dus niet persé vrijstaande woningen te zijn, ook bijvoorbeeld een tussenwoning kan appartementen bevatten.

 

Esri Inc heeft hier al ooit een technisch artikel over geschreven en er zijn verschillende manieren om het aantal punten in een polygon te tellen. Ik gebruik hier de Spatial Join tool met de Verblijfsobject_Best_Woning feature class voor. Sommige vrijstaande gebouwen kunnen bijvoorbeeld zowel een winkel als een woning bevatten, maar dit zou in mijn ogen nog steeds een vrijstaande woning zijn, aangezien we alleen in de typering van de woning geïnteresseerd zijn.

 

 

De Spatial Join tool telt hoeveel verblijfsobjecten met woningtypering zich bevinden in een enkel pand. We selecteren dus de panden met een Join_Count van meer dan 1 en classificeren dit vervolgens als “Appartement” met de Calculate Field tool. Omdat dit ook niet-vrijstaande panden betreft, zullen deze voorheen als tussenwoning of hoekwoning aangeduide panden worden overschreven als appartement.

 

Van alle woningen hebben we nu hoekwoningen, tussenwoningen en appartementen geïdentificeerd. De woningen die nog niet geclassificeerd zijn, zijn vrijstaande woningen. Om dit te controleren selecteer ik alle woningen met Woningtype <Null> (met andere woorden de woningen die nog niet geclassificeerd zijn,) en alle woningen met een Join_Count van 1 en een Frequency van <Null>. Beide selecties geven dezelfde aantallen als uitkomst dus tot nu toe kloppen de cijfers. Met de Calculate Field tool vul ik voor deze selectie het Woningtype “Vrijstaande woning” in.

 

Stap 4: Het samenvoegen van de datasets

We hebben nu twee datasets, een met woningen en een met panden die geen woning bevatten. Om een overzicht te krijgen van alle panden in de BAG voeg ik deze weer samen met de Append tool waarna ik het eindproduct in handen heb: een dataset met daarin een classificatie naar woningtype.

 

 

Overwegingen

Natuurlijk is nooit iets zo eenvoudig als het lijkt en ook hier zijn er een aantal dingen om te overwegen. Allereerst zijn dat mogelijke ‘fouten’ in de onderliggende data. Het is belangrijk om te weten dat de bronhouders verantwoordelijk zijn voor het updaten van de data en dat als er bijvoorbeeld een pand mist, dit invloed heeft op de uitkomst van de analyse. Een missend pand kan namelijk een tussenwoning onjuist aanduiden als een hoekwoning en een aangrenzende hoekwoning zal in dat geval geclassificeerd worden als een vrijstaande woning. Hieronder heb ik een voorbeeld gemaakt van een dergelijke situatie (komt niet overeen met de werkelijkheid). Controleer daarom altijd de brondata. Klopt de inhoud hiervan niet, neem dan contact op met content@esri.nl.content@esri.nl

 

 

Ten tweede is er de definitie van een vrijstaande woning. Ik heb gekozen om alleen te kijken of een woning grenst aan een andere woning, maar een woning kan natuurlijk ook grenzen aan een pand met een andere verblijfsfunctie. Omdat dit in mijn onderzoeksgebied voornamelijk schuurtjes of garages zijn, heb ik ervoor gekozen deze panden niet mee te nemen. Het ligt aan uw eigen doelstellingen over de informatie die u aan de data wil onttrekken welke keus u hierin zal maken.

 

Definities zijn ook het onderwerp van mijn derde punt om te overwegen. Wanneer is iets namelijk een appartement? Stel er bestaat een rij panden waarvan de onderste verdieping een winkel betreft en de bovenste verdieping(en) gebruikt wordt als woning. Zijn die woningen dan appartementen of tussenwoningen? Op dit moment heb ik deze aangeduid als tussenwoningen aangezien ik alleen de verblijfsobjecten met een woondoel heb geteld, maar hierin zou u dus een andere keus kunnen maken.

 

Uitdaging

Deze analyse is een eerste aanzet om een complete dataset met woningtyperingen te kunnen realiseren. Hoe zou u de vervolgstappen inkleden om bijvoorbeeld de hoekhuizen van de twee-onder-een-kapwoningen te onderscheiden? En wat zouden voor u relevante overwegingen zijn om mee te nemen? Ik ben erg benieuwd naar uw ideeën!

 

Houdoe en fijn weekend!

 

Relevante links:

BAG informatie (Kadaster)

Esri Nederland Datasets groep in ArcGIS Online

Blog over de BAGv2

Clip tool

Copy Features tool

Selecteer op attribuut

Selecteer op locatie

Calculate Field tool

Polygon Neighbours tool

Frequency tool

Spatial Join tool

Append tool

Outcomes