Plancapaciteit
De plancapaciteit geeft de voorgenomen ruimtelijke ontwikkelingen van gemeenten, provincies en het Rijk weer: waar plannen liggen voor woningen en werklocaties, en hoe hard die plannen zijn. RSopen maakt de plancapaciteit niet zelf. Ze komt uit een apart GeoDMS-project, pbl-nl/model-RS-PlanCapaciteit, dat de plannen uit verschillende bronnen leest en per sector, hardheid en periode op het raster van 25 meter zet. Deze pagina beschrijft wat een levering bevat, hoe ze wordt gemaakt en wat RSopen ermee doet.
De pagina volgt de configuratie van de tak rsopen-45-woningaantallen van die repo, de stand van pull request pbl-nl/model-RS-PlanCapaciteit#1. De werkwijze voor wie een levering maakt, met de opdrachten en de checklist, staat in docs/Levering_woningaantallen.md in die repo; de achtergrond en de besluiten in pbl-nl/model-RSopen#45.
In het kort
Een levering bevat twee soorten kaarten. De booleans zeggen per cel of er een hard of een zacht plan ligt, voor wonen en voor drie soorten werklocaties; die gebruikt RSopen in de zeef en in de tredes. De woningaantallen zeggen per cel hoeveel woningen de harde plannen per periode bouwen en slopen, per woonklasse; die kan RSopen opleggen. Elke celwaarde is via een plannummer en een plannenrapport tot een plan terug te leiden. Daarnaast schrijft de levering een bijgewerkte IBIS, de inventarisatie van bedrijventerreinen, die RSopen als jaargang van IBIS leest.
Wat een levering bevat
Een run schrijft alles in een map %LocalDataProjDir%/Output/<datum>_<tijd>/:
| Bestanden | Inhoud |
|---|---|
Plannen_<sector>_<Hard of Zacht>_rdc_25m.tif | De booleans voor zeef en tredes, voor Wonen en voor de werkhoofdklassen Industrieterrein, AlgemeneBedrijfslocatie en Kantoor. |
Woningen_<periode>_<woonklasse>.tif | De netto woningen, bouw min sloop, van de opgelegde plannen: vier perioden maal vier woonklassen. Een cel kan negatief zijn waar een plan meer sloopt dan bouwt. |
Woningen_<periode>_Totaal.tif | Per periode het totaal van de vier klassen, ter controle. |
Bouw_<periode>_<woonklasse>.tif, Bouw_<periode>_Totaal.tif | Dezelfde kaarten voor de bruto bouw. |
Sloop_<periode>.tif | Per periode de sloop en onttrekkingen van de opgelegde plannen, een kaart, want de bronnen zeggen niet welk woningtype gesloopt wordt. |
Plan_id.tif | Per cel het nummer van het opgelegde plan, nul waar geen plan ligt. Overlappen plannen, dan krijgt de cel het plan met de meeste bouw op die cel. |
Leveringsrapport_plannen.csv | Per opgelegd plan of vergunning de bron, de bron-id, het plannummer, de gemeente, bouw, sloop en netto, de woningen per periode, de aandelen eengezins en sociale huur met hun herkomst, de bestaande woningen in de contour, het oppervlak, de dichtheid en het aantal cellen. |
Leveringsrapport_kengetallen.txt | De kengetallen van de levering, voor de checklist. |
IBIS_NL_<jaargang>_<datum>.gpkg | De bijgewerkte IBIS. |
De perioden heten naar de woningbouwkaart: 2026_t_m_2030, 2031_t_m_2035, 2036_t_m_2040 en 2041_t_m_2045. De woonklassen zijn die van RSopen: eengezins_VrijeSector, eengezins_SocialeHuur, meergezins_VrijeSector en meergezins_SocialeHuur. Elke kaart staat op het raster van 25 meter in RD, met een tfw en een xml. Een levering uit de vertrouwelijke planlijst draagt in elke bestandsnaam het voorvoegsel Priv, behalve de bijgewerkte IBIS, die openbaar is.
Wonen
Bronnen
| Bron | Wat ze levert | Hard en zacht |
|---|---|---|
| Nationale woningbouwkaart, openbare download | De projectvormen met contour, hardheid, capaciteit bruto en netto, woningtype, prijsklassen en fasering per vijf jaar, met de gemeentetabel van dezelfde download. | Zoals de woningbouwkaart het geeft: hard is een plan met een vastgesteld omgevingsplan of een besluit buitenplanse omgevingsplanactiviteit. |
| Vertrouwelijke planlijst die PBL van BZK ontvangt | Alle plannen met een contour, ook de niet-openbare; alleen gelezen bij ModelParameters/CreateWithPrivData. Hij vervangt dan de openbare download. | Hard bij de codes 1A en 1B (onherroepelijk) en 2A en 2B (vastgesteld), of als de levering het plan al als hard codeert. |
| Verleende omgevingsvergunningen | Projecten waarbij woningen bijkomen, uit een pijplijn op de kennisgevingen van officielebekendmakingen.nl; alleen bij ModelParameters/MetVergunningen. | Altijd hard, in de periode 2026 tot en met 2030. |
| Bestemmingsplannen | Alleen contouren voor de booleans, uit de export van Ruimtelijke plannen van PDOK. | Hard waar het geldende plan wonen of woongebied geeft op grond die in 2022 akker, grasland of bouwterrein was; zacht waar een nieuwer plan in procedure dat doet en het geldende plan niet. |
Welke bronnen meedoen staat in ModelParameters/Bronnenlijst_Wonen, met per bron of ze woningaantallen levert (MetAantallen). De gemeentetabel van de woningbouwkaart komt uit dezelfde download die RSopen voor de woonclaim gebruikt, zodat oplegging en claim op dezelfde stand staan (ModelParameters/Woningbouwkaart_filedate).
De booleans
Een cel krijgt de boolean Hard of Zacht als de meerderheid van haar cellen van 5 meter in een plan van die hardheid ligt. In de booleans telt elk plan met een echte contour, ook een plan zonder openbaar aantal, want ook dat is een plek waar gebouwd wordt. Een symbool, een cirkel die de woningbouwkaart tekent waar geen contour is aangeleverd, staat als zoekgebied in de boolean van zijn hardheid: een cirkel rond zijn punt met het oppervlak dat zijn bruto capaciteit bij de mediane dichtheid van de harde plannen in de gemeente vraagt, nooit kleiner dan de getekende cirkel. De boolean Hard bevat ook elke cel met opgelegde woningen, want opgelegd is hard.
De woningaantallen
In de woningaantallen komen alleen de harde plannen met een echte contour en een capaciteit. De woningen van zachte plannen en symbolen vallen in RSopen onder de restclaim die het model zelf plaatst.
- Per plan zijn er drie aantallen: de bouw, de sloop (sloop en onttrekkingen) en het netto, bouw min sloop. De sloop krijgt dezelfde fasering als de bouw, want de woningbouwkaart faseert de sloop niet. De vertrouwelijke planlijst en de vergunningen geven geen sloop; daar is bouw gelijk aan netto.
- Een plan zonder opleverjaar voor een deel van zijn woningen verdeelt dat deel met het faseringsprofiel van de harde plannen van zijn gemeente, met het landelijke profiel als terugval.
- Het woningtype komt uit het plan, anders uit de verhouding van de gemeente in de gemeentetabel, en als ook de gemeente geen woningtype noemt uit de dichtheid van het plan: per dichtheidsklasse het aandeel eengezins van de plannen die het type wel noemen (
Classifications/Dichtheidsklasse). - Het aandeel sociale huur komt uit het plan, anders uit de gemeente (laagsegment huur gedeeld door de woningen met een bekend prijssegment), anders landelijk. Het geldt gelijk voor eengezins en meergezins, want de bron kruist woningtype en prijsklasse niet.
- De bouw van een plan ligt gelijkmatig over de cellen met hun middelpunt in de contour. Overlappende plannen delen hun cellen en tellen op. Een plan zonder celmiddelpunt in zijn contour komt op de cel van zijn middelpunt.
- De sloop ligt op dezelfde cellen, maar naar het aantal bestaande woningen dat erop staat: de woningen in de BAG van de panden die voor 2022 in gebruik waren (
ModelParameters/Bestemmingsplannen/BestaandeWoningVoor). Staat er in de contour geen bestaande woning, dan ligt de sloop gelijkmatig. - Een gemeente waar de planlijst meer harde woningen bevat dan de gemeentetabel, wordt niet afgetopt.
Elke kaart met woningaantallen draagt een toets dat ze evenveel woningen bevat als de plannen; faalt die, dan wordt de kaart niet geschreven.
De verleende vergunningen
De vergunningen vullen de woningbouwkaart aan met projecten die al vergund zijn maar nog niet in de BAG staan. De Python-kant van de pijplijn staat in vergunningen/ van de repo: hij oogst de kennisgevingen, laadt ze in een database en vormt er zaken van. De rest rekent GeoDMS in SourceData/Plancapaciteit/Vergunningen: het woningaantal uit de titels, de koppeling aan BAG-panden, de telregel en de ontdubbeling.
Een vergunning telt als een verleend-publicatie zegt dat er woningen bijkomen; de titelregel herkent een bouwwoord met de woningen als lijdend voorwerp, ombouw, transformatie, splitsing en tijdelijke woningen, en laat vervanging, herbouw, legalisatie, kamerverhuur, recreatiewoningen en onzelfstandige eenheden weg. Verder: verleend vanaf 2022, tien woningen of meer, niet ingetrokken, geen tweede publicatie van hetzelfde project, nog zonder gekoppelde woningen in de BAG en niet binnen 100 meter van een plan van de woningbouwkaart. Die instellingen staan in ModelParameters/Vergunningen/Selectie. De contour komt uit de kadastrale percelen die de kennisgeving noemt (BRK), het woningtype en de sociale huur uit de titel als die een kant op wijzen, anders uit de gemeente. Een besluit waarvan de pijplijn de uitkomst niet las telt als verlening (BesluitTeltAlsVerleend); van de projecten met alleen zo’n besluit staat het merendeel met woningen in de BAG.
Werken
Bronnen
| Bron | Wat ze levert | Hard en zacht |
|---|---|---|
| IBIS 2024 | Bedrijventerreinen per terrein, buiten de vier provincies met een eigen laag. Een terrein telt als meer dan de helft van zijn netto oppervlak nog uitgeefbaar is (ModelParameters/Werklocaties/MinAandeelUitgeefbaar). | Hard bij planfase 1 of 2 (onherroepelijk of vastgesteld) of zonder planfase, zacht bij planfase 3 of 4 (ontwerp of structuurvisie). |
| Werklocaties van de provincies | Noord-Holland: bedrijventerreinen per terrein en kantoorlocaties met hun planvoorraad. Zuid-Holland: bedrijventerreinen per terrein. Overijssel: de uitgeefbare kavels. Limburg: de uitgeefbare kavels van REBIS. Gelderland ontbreekt, want die kavellaag heeft geen open licentie. | Zoals de monitor het zegt: zacht bij een ontwerp, structuurvisie of ruimtelijk plan; een kantoorlocatie is hard als er harde planvoorraad is. |
| Bestemmingsplannen | Per werkhoofdklasse uit de enkelbestemmingen. Een vlak met een naam die geen werklocatie is (militair terrein, winning, nutsvoorziening) telt niet, en een vlak met een bestemming voor een enkel bedrijf of voorziening telt niet als er voor 2022 al een pand stond: dat is het terrein van een bestaand bedrijf. | Hard waar het geldende plan een werkbestemming geeft op grond die in 2022 akker, grasland of bouwterrein was; zacht waar een nieuwer plan in procedure dat doet. |
| PlaBeKa | Werklocaties per gemeente in Noord-Holland en Flevoland, zonder de segmenten die geen werklocatie zijn (woonwerk, woonwijk, centrumgebied). | Hard als de locatie in de harde planvoorraad van de MRA-set ligt, anders zacht. |
| NieuweNieuweKaart | Plannen voor kantoren en bedrijventerreinen, stand 2019. | Hard. |
| Gemeente Utrecht en ontwikkellocaties Zuid-Holland | Vertrouwelijke bronnen, alleen gelezen bij CreateWithPrivData. | Per bron. |
Welke bronnen meedoen staat in ModelParameters/Bronnenlijst_Werken, met per bron of ze vertrouwelijk is (IsPriv).
Werkhoofdklassen
De booleans van werken zijn er per werkhoofdklasse. Het werklocatietype van IBIS, dat ook de provinciale lagen gebruiken, gaat zo naar de klassen (SourceData/Plancapaciteit/IBIS/Werkklasse_T):
| Werkhoofdklasse | Werklocatietypen van IBIS |
|---|---|
Industrieterrein | zeehaventerrein, platformgebonden bedrijvigheid, agribusinesscomplexen |
AlgemeneBedrijfslocatie | bedrijventerrein, economische zone, retail en meubelboulevards, onbekend |
Kantoor | economische zone, onderwijslocaties, zorglocaties |
Een type dat niet herkend wordt, telt als algemene bedrijfslocatie. Waar wonen en werken dezelfde plek claimen, gaat wonen voor: werken krijgt geen plancapaciteit op cellen van 5 meter in een woningbouwplan of in een cel met opgelegde woningen, want de woningbouwkaart is nieuwer dan de werkenbronnen.
In RSopen telt per werksubsector alleen de plancapaciteit van de werkhoofdklassen waar die subsector kan landen. Dat staat als drie KanOp-vlaggen per Jobs6-subsector in Classifications/Actor.dms (KanOpIndustrieterrein, KanOpAlgemeneBedrijfslocatie, KanOpKantoor): op een industrieterrein alleen nijverheid en logistiek, op een algemene bedrijfslocatie alles behalve nijverheid, op een kantoorlocatie de vier dienstensubsectoren. De indeling volgt de mengbaarheid met andere functies en de toegestane milieucategorie.
De bijgewerkte IBIS
RSopen leest IBIS niet alleen voor de plancapaciteit, maar ook voor het terreintype (zeehavens), de milieucategorie (de buffer waarin wonen niet mag) en de vol-status van bestaande terreinen. De landelijke IBIS staat op 2024; Noord-Holland, Zuid-Holland, Overijssel en Limburg publiceren hun eigen inventarisatie nieuwer. SourceData/Plancapaciteit/IBIS/Bijgewerkt voegt die samen tot een bestand in de velden van IBIS: per RIN-nummer maakt een terrein van IBIS 2024 plaats voor dat van de provincie, een terrein vervalt als de provincie het heeft afgevoerd of samengevoegd, en terreinen die alleen de provincie kent komen erbij. GetResults/IBIS_Bijgewerkt schrijft het als IBIS_NL_<jaargang>_<datum>.gpkg, met per terrein de bronlaag en de peildatum.
Opbouw van de configuratie
| Onderdeel | Inhoud |
|---|---|
ModelParameters in cfg/main.dms | De keuzes per run (CreateWithPrivData, MetVergunningen), de stand van elke bron (<bron>_filedate) en de bronnenlijsten van wonen en werken. De regels per bron staan in cfg/main/ModelParameters/: Vergunningen, Bestemmingsplannen en Werklocaties. |
Units, Classifications, Geography | Eenheden, codelijsten (hardheid, werkhoofdklassen, perioden, woonklassen, dichtheidsklassen) en rasters. |
SourceData | De bronnen en hoe ze worden gelezen en afgeleid, met de stores die vooraf worden gemaakt (MaakGenerate) en de controles op afroep (Controle). |
GetResults | De levering: Wonen en Werken (de booleans), Woningaantallen en IBIS_Bijgewerkt. Generate_All maakt alles. |
Templates | De templates van de booleans. |
Een levering maken
Kopieer cfg/main/ConfigSettings.dms.example naar cfg/main/ConfigSettings.dms en zet de paden. Zet in ModelParameters de keuzes en de stand van de bronnen, en vraag /GetResults/Generate_All. Zoek daarna in het log naar [E] en loop de checklist in docs/Levering_woningaantallen.md na.
De levering leest twee stores die vooraf worden gemaakt en op de brondata staan: PlanCapaciteit/Vergunningen_<datum>.gpkg, de vergunningen uit de pijplijn, en de kaarten in PlanCapaciteit/Bestemmingsplannen/Bestemmingsplannen_<datum>. De vergunningenstore vraagt de uitvoer van de pijplijn, de BRK Kadastrale Kaart (als perceel_<datum>.mmd en pand_<datum>.mmd naast de download) en de volledige BAG van RSopen. Met MetVergunningen op FALSE is die store niet nodig en komen de woningaantallen alleen uit de woningbouwkaart. De store stopt de run als de database van de pijplijn een publicatie na Vergunningen_filedate bevat, zodat een store nooit stil een latere oogst bevat.
Een levering kopieer je naar Beleid/Plancapaciteit/<mapnaam>/ in de brondata van RSopen, een vertrouwelijke naar %PrivDataDir%/PlanCapaciteit/<mapnaam>/; de bijgewerkte IBIS naar Grondgebruik/IBIS/.
Hoe RSopen de levering leest
RSopen leest de booleans in SourceData/Plancapaciteit: per sector en hardheid Plannen_<sector>_<Hard of Zacht>_rdc_25m.tif uit Beleid/Plancapaciteit/<levering>/, of bij ModelParameters/UsePrivPlanCapaciteit de bestanden met het voorvoegsel Priv uit %PrivDataDir%/PlanCapaciteit/<levering>/. Welke levering staat in ModelParameters/PlanCapaciteit_filedate; wonen en werken komen uit dezelfde levering. De booleans van werken worden per Jobs6-subsector met de KanOp-vlaggen samengevoegd. Voor de andere sectoren zijn er geen plannen en staan de booleans op FALSE.
De bijgewerkte IBIS is in RSopen een jaargang van IBIS, gekozen met ModelParameters/IBIS_Year. De woningaantallen legt de tak RuimteVoorWoningbouw van pbl-nl/model-RSopen op: per zichtjaar de periode die erop eindigt, met de bouw- en de sloopkaart. De hoofdlijn van RSopen leest alleen de booleans.
Preflight.dms toetst per projectlijn of de levering in PlanCapaciteit_filedate de verwachte is. Zet die verwachting mee bij een nieuwe levering.
Doorwerking in het model
Plancapaciteit werkt op drie plekken door.
-
In de zeef: locaties met plannen voor de betreffende subsector zijn vrijgesteld van de restricties die alleen buiten plancapaciteit gelden. De vrijstelling is per subsector KanOp-gefilterd, respecteert de schakelaars
HardePlannenGeldigInZeefenZachtePlannenGeldigInZeef, en vervalt in zichtjaren naModelParameters/Advanced/PlancapaciteitGeldigTotEnMet, omdat plannen een beperkte looptijd hebben.De inhoudelijke restricties staan in de basisjaarzeef, en die wordt eenmaal per variant opgebouwd en kent het zichtjaar dus niet. Daarom levert de basisjaarzeef twee uitkomsten, met en zonder planvrijstelling, en kiest de zichtjaarzeef er per zichtjaar een van. De zichtjaarzeef houdt daarnaast twee eigen planvlaggen, die dezelfde schakelaars en dezelfde vervaldatum dragen.
-
In de tredes: locaties binnen harde of zachte plannen krijgen voorrang in de allocatie. Ook die voorrang is per subsector KanOp-gefilterd, zodat nijverheid geen voorrang krijgt op een hard kantoorplan, en ze vervalt op dezelfde datum als de vrijstelling in de zeef (#739). De tredes worden zichtjaaronafhankelijk opgebouwd, dus staan er opbouwen met en zonder plancapaciteit klaar en kiest de allocatie er per zichtjaar een van.
Die tweede plek weegt zwaarder dan de eerste. De plancapaciteit is in de ladders een hoge as, bij wonen en bij nijverheid en logistiek de eerste, en de allocatie ordent strikt lexicografisch: een cel in een hogere trede gaat altijd voor op elke cel in een lagere trede, ongeacht de geschiktheid.
-
In de milieuzonering rond bedrijventerreinen: een IBIS-terrein waarvan het aandeel cellen onder een woningbouwplan, hard of zacht, minstens
ModelParameters/Wonen/MilieuCat/TransformatieDrempelis, telt als transformerend en houdt geen milieuzone, want daar verdwijnt de bedrijvigheid.
Voorbeeld: de levering 2026-10-15_16-37-32
Ter illustratie de kengetallen van een levering uit de openbare download van de woningbouwkaart met de vergunningen, uit Leveringsrapport_kengetallen.txt. De getallen horen bij die levering en niet bij de methode.
| Kengetal | Waarde |
|---|---|
| plannen in de bron | 8.964 |
| opgelegde plannen | 5.332 |
| bouw van de opgelegde plannen | 352.195 |
| sloop van de opgelegde plannen | 10.744 |
| netto | 341.451 |
| opgelegde vergunningen | 798, met netto 30.785 woningen |
| netto 2026 tot en met 2030 | 266.093 |
| netto 2031 tot en met 2035 | 57.162 |
| netto 2036 tot en met 2040 | 14.507 |
| netto 2041 tot en met 2045 | 3.689 |
| cellen met een opgelegd plan | 134.438 |