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
"""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
"""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
"""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
"""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
"""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
"""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
"""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
"""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
"""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
"""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
"""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
"""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
"""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