Ga naar inhoud

Bronlagen downloaden met Python

Elk voorbeeld is een zelfstandig script. Volg eerst Aan de slag voor installatie, de opslagmap en het uitvoeren van een script. Instellingen staan bovenaan: pas de gegevensmap en het hergebruik aan, en bij AHN/BGT ook het gebied, de AHN-versie of de objecttypen. Bestaande bestanden worden zoveel mogelijk hergebruikt. Voor een nieuwe bronversie kan bewust opnieuw downloaden nodig zijn; zie het cachegedrag in de API-referentie.

Waar een download ruimtelijk kan worden beperkt, gebruiken de voorbeelden Alkmaar-centrum. Landelijke bestanden worden volledig opgehaald: een klein voorbeeldgebied maakt die downloads niet kleiner. Een volledige productie haalt de benodigde bronnen zelf op; het is niet nodig alle onderstaande scripts eerst uit te voeren.

AHN

Download de AHN4-DTM-tegels die Alkmaar-centrum raken, met resolutie 0,5 m. Hele AHN-tegels worden opgehaald; de download is groter dan het voorbeeldgebied. Het resultaat is een VRT met bijbehorende GeoTIFFs.

Over deze bron · API-referentie

Download het Python-script.

"""AHN downloaden. Hele AHN-tegels rond Alkmaar-centrum; dit is geen uitsnede van 1 km²."""

from pathlib import Path

from waterlagen.ahn import download_ahn
from waterlagen.areas import NAMED_AREAS
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.
AREA = "alkmaar_centrum"
AHN_VERSION = 4
MODEL = "dtm"

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_ahn(
            ahn_dir=store.ahn_dir,
            poly_mask=NAMED_AREAS[AREA],
            model=MODEL,
            ahn_version=AHN_VERSION,
            service="ahn_pdok",
            cell_size="05",
            missing_only=not OVERWRITE,
            create_vrt=True,
        )
    print(result)

BAG

Download de landelijke BAG-light als GeoPackage. Dit is een groot bestand; de download wordt niet beperkt tot Alkmaar-centrum. De productievoorbeelden gebruiken deze bron voor panden en woon-VBO's.

Over deze bron · API-referentie

Download het Python-script.

"""BAG downloaden. Grote landelijke download; Alkmaar-centrum beperkt dit bestand niet."""

from pathlib import Path

from waterlagen.bag import download_bag_light
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_bag_light(download_dir=store.bag_dir, overwrite=OVERWRITE)
    print(result)

Bestuurlijke gebieden

Download het landelijke GeoPackage met bestuurlijke gebieden voor het standaardjaar. Het bestand bevat onder meer de landsgrens die de rasterproducties gebruiken. De gebiedsselectie volgt pas bij het verwerken.

Over deze bron · API-referentie

Download het Python-script.

"""Bestuurlijke gebieden downloaden. Landelijke bron; de gebiedsselectie volgt bij het verwerken."""

from pathlib import Path

from waterlagen.administratieve_gebieden import download_bestuurlijke_gebieden
from waterlagen.administratieve_gebieden import DEFAULT_BESTUURLIJKE_GEBIEDEN_YEAR
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_bestuurlijke_gebieden(
            year=DEFAULT_BESTUURLIJKE_GEBIEDEN_YEAR,
            download_dir=store.administratieve_gebieden_dir,
            overwrite=OVERWRITE,
        )
    print(result.target_path)

BGT

Vraag voor Alkmaar-centrum de objecttypen waterdeel en pand op. Het resultaat bestaat uit afzonderlijke GeoPackages in een eigen map. Dit is een klein voorbeeld van een BGT-aanvraag; de volledige landgebruikproductie gebruikt een landelijk BGT-bestand met meer objecttypen. Dit voorbeeld vervangt die bron niet.

Over deze bron · API-referentie

Download het Python-script.

"""BGT downloaden. Kleine BGT-aanvraag; houd deze apart van de landelijke productiebron."""

from pathlib import Path

from waterlagen.bgt import bgt_custom_download
from waterlagen.areas import NAMED_AREAS
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.
AREA = "alkmaar_centrum"
FEATURETYPES = ("waterdeel", "pand")

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = bgt_custom_download(
            download_dir=store.bgt_dir / AREA,
            featuretypes=FEATURETYPES,
            poly_mask=NAMED_AREAS[AREA],
            overwrite=OVERWRITE,
        )
    print(result.download_dir)

BRP

Zoek de nieuwste definitieve BRP-release en download het landelijke GeoPackage. Dit kan een groot bestand zijn. Een bestaand doelbestand wordt hergebruikt; de releasefeed wordt wel geraadpleegd.

Over deze bron · API-referentie

Download het Python-script.

"""BRP downloaden. Landelijke download; een bestaand brp.gpkg wordt hergebruikt."""

from pathlib import Path

from waterlagen.brp import download_brp
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_brp(
            download_dir=store.brp_dir, filename="brp.gpkg", overwrite=OVERWRITE
        )
    print(result.path)

CBS

Download de landelijke Wijk- en Buurtkaart 2025 als GeoPackage en de benodigde kerncijfers als JSON. Ook voor Alkmaar-centrum zijn dit landelijke bronnen. De producties voor inwoners en auto's selecteren later volledige CBS-buurten.

Over deze bron · API-referentie

Download het Python-script.

"""CBS downloaden. Landelijke buurtgeometrieën en kerncijfers; selectie gebeurt later."""

from pathlib import Path

from waterlagen.cbs import download_buurtgegevens_2025
from waterlagen.administratieve_gebieden import download_wijk_buurtkaart_2025
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        kaart = download_wijk_buurtkaart_2025(
            download_dir=store.administratieve_gebieden_dir, overwrite=OVERWRITE
        )
        cijfers = download_buurtgegevens_2025(
            download_dir=store.cbs_dir, overwrite=OVERWRITE
        )
    print(kaart.target_path)
    print(cijfers.target_path)

Dijkringen

Download de landelijke historische dijkringen als GeoPackage. Deze bron is niet tot Alkmaar-centrum beperkt. Zie de bronpagina voor het peiljaar en de interpretatie.

Over deze bron · API-referentie

Download het Python-script.

"""Dijkringen downloaden. Landelijke historische dijkringen, geen actuele gebiedsindeling."""

from pathlib import Path

from waterlagen.dijkringen import download_dijkringen
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_dijkringen(
            download_dir=store.dijkringen_dir, overwrite=OVERWRITE
        )
    print(result.target_path)

GKW HYDAMO

Download het landelijke HYDAMO-archief en haal het GeoPackage daaruit. Het archief kan groot zijn. De selectie van het watersysteem rond Alkmaar-centrum gebeurt in de afwateringseenhedenproductie.

Over deze bron · API-referentie

Download het Python-script.

"""GKW HYDAMO downloaden. Groot landelijk archief; ruimtelijke selectie gebeurt na het downloaden."""

from pathlib import Path

from waterlagen.hydamo import download_hydamo
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_hydamo(download_dir=store.hydamo_dir, overwrite=OVERWRITE)
    print(result.target_path)

LIWO

Download het landelijke raster met overstromingsgevoelige gebieden als GeoTIFF. Deze functie haalt de volledige dekking op, ook wanneer later alleen Alkmaar-centrum wordt verwerkt.

Over deze bron · API-referentie

Download het Python-script.

"""LIWO downloaden. Volledig landelijk raster; geen gebiedsselectie bij de download."""

from pathlib import Path

from waterlagen.liwo import download_raster
from waterlagen.liwo import FILENAME
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_raster(
            store.source_data_dir / "liwo" / FILENAME, overwrite=OVERWRITE
        )
    print(result)

OSM-drinkwaterlocaties

Haal de geometrieën van de beoordeelde drinkwaterlocaties uit OSM op en schrijf ze naar een GeoPackage. Dit is de landelijke selectie van beoordeelde locaties, geen volledige OSM-download en geen selectie rond Alkmaar-centrum.

Over deze bron · API-referentie

Download het Python-script.

"""OSM-drinkwaterlocaties downloaden. Landelijke selectie van beoordeelde locaties, geen volledige OSM-download."""

from pathlib import Path

from waterlagen.functioneel_landgebruik.osm_drinkwater import download_osm_drinkwater
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_osm_drinkwater(data_store=store, overwrite=OVERWRITE)
    print(result)

TOP10NL

Download het landelijke TOP10NL-GeoPackage. Dit is een grote download die niet door het voorbeeldgebied wordt begrensd.

Over deze bron · API-referentie

Download het Python-script.

"""TOP10NL downloaden. Grote landelijke download; Alkmaar-centrum beperkt dit bestand niet."""

from pathlib import Path

from waterlagen.top10nl import download_top10nl
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_top10nl(download_dir=store.top10nl_dir, overwrite=OVERWRITE)
    print(result)

Waterketen DAMO

Download de landelijke Waterketen DAMO als GeoPackage. De bron blijft landelijk; de ruimtelijke selectie volgt bij het verwerken.

Over deze bron · API-referentie

Download het Python-script.

"""Waterketen DAMO downloaden. Landelijke bron; de gebiedsselectie volgt bij het verwerken."""

from pathlib import Path

from waterlagen.waterketen_damo import download_waterketen_damo
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_waterketen_damo(
            download_dir=store.waterketen_damo_dir, overwrite=OVERWRITE
        )
    print(result.target_path)

Waterschapsgrenzen

Download het GeoPackage met alle waterschapsgrenzen. Voor het vaste voorbeeldgebied Alkmaar-centrum is geen waterschapsgrens nodig; dit voorbeeld laat zien hoe deze bron afzonderlijk wordt opgehaald.

Over deze bron · API-referentie

Download het Python-script.

"""Waterschapsgrenzen downloaden. Alle waterschapsgrenzen in één GeoPackage."""

from pathlib import Path

from waterlagen.administratieve_gebieden import download_waterschapsgrenzen
from waterlagen.datastore import DataStore
from waterlagen.logger import production_logging

DATA_DIR = Path("data")  # Pas aan naar een map met voldoende vrije ruimte.
OVERWRITE = False  # True vervangt bestaande bronbestanden.

if __name__ == "__main__":
    store = DataStore(
        data_dir=DATA_DIR,
        source_data_dir=DATA_DIR / "source_data",
        processed_data_dir=DATA_DIR / "processed_data",
    )
    with production_logging():
        result = download_waterschapsgrenzen(
            download_dir=store.administratieve_gebieden_dir, overwrite=OVERWRITE
        )
    print(result.target_path)

Redactie: AI