Gezocht: Uitlijn grenzen + kust Nederland

Hallo,

Ik ben op zoek naar een bestand (download) dat ik kan gebruiken om de buitengrens van Nederland, waarmee ik de landsgrenzen en de kustlijn bedoel, weer te geven als omlijning van een plot.

Op dit moment gebruik ik een unary union van de bestuurlijke grenzen, d.w.z. de buitengrens van alle gemeentes samen. Dit werkt prima voor de landsgrenzen, maar verschillende wateren (eerste paar mijl van de Noordzee, gehele Waddenzee/IJsselmeer/Markermeer) worden ook als land weergegeven. Voorbeeld, de zwarte lijn:

Het gaat hier om landbouw dus ik zou graag duidelijk maken dat bijvoorbeeld de Waddenzee water is. Hier een voorbeeld van waar ik naar op zoek ben (dit voorbeeld is niet beschikbaar als geodata, alleen als afbeelding, en is ook niet 100% nauwkeurig volgens mij): https://nl.pinterest.com/pin/70087337925966268/

Ik heb natuurlijk rondgekeken in de rest van de datasets en ook op dit forum, maar niemand was op zoek naar precies hetzelfde als ik.

Kan iemand me hiermee helpen?

Hallo Burggraaf.
Ik weet niet of er een bestand met de landsgrenzen zonder water bestaat. Maar zo wel dan zal er vast iemand mij corrigeren.
Mijn suggestie is om de zeegebieden van je bestuurlijke grens af te halen. In theorie zul je dan land overhouden. Met een beetje geluk wijken de buitengrenzen niet al te veel van elkaar af anders heb je flink wat handwerk vrees ik. Of misschien is het een optie om de zeegebieden over je landsgrens te leggen en blauw in te kleuren.
De zeegebieden kun je op pdok vinden.
https://www.pdok.nl/ogc-webservices/-/article/zeegebieden

1 like

Misschien helpt de Unclos (united nations coastline of the sea) je in de richting?
Ik zit op mijn mobiel dus kan zo snel geen downloadlink vinden.

Ik herinner me vaag iets van tijdens de opbouw van de BAG, dat we woonplaats grenzen aan die unclos moesten snappen.
Maar ik weet niet zeker of de som van woonplaatsen de bestuurlijke (gemeente) grenzen vormen.

De CBS gemeentenkaart had vroeger een kolom WATER met de waarde JA of NEE er in. Misschien is dat nog steeds zo?

De Landsgrens uit Bestuurlijke Grenzen is opgebouwd uit de Provincie, Gemeenten en Woonplaatsen. En die sluiten allemaal verdacht netjes aan op de UNCLOS lijn. Dat lijkt erg op de zwarte lijn op je plaatje. Dit bericht van de Basisregistratie Ondergrond geeft ook de UNCLOS lijn aan:

Wat ik dan zou doen is de Water-objecten uit Top10NL en/of BGT nemen en die van de UNCLOS lijn aftrekken. Als het goed is houd je dan de echte land-landsgrenzen over.

Al weet ik niet precies hoe de kustgemeenten zijn omgegaan met de grens tussen Strand en Zee.

instant update:
balen. De BGT-beheerders hanteren ook de UNCLOS lijn als scheidslijn zand(land) en zee.

Gevonden! Je kunt je lol op bij onze vrienden van Top10NL.
Dit plaatje komt uit de PDOK service plugin in QGIS. Daar gezocht op Top10NL.

Van rechts naar links:
geel is duidelijk echt strand/zand.
Dan een stukje gearceerd. Lijkt “betwist gebied”, de eb-vloed zone of iets dergelijks.
Dan blauw wat echt ‘altijd’ onder water staat.
Verder naar links, van het plaatje af, is de UNCLOS lijn.

In QGIS kom ik ook iets tegen over Coastline en Shoreline.

Helaas zijn het allemaal WMS’en dus niet te bewerken. Maar wellicht lukt het je om de onderliggende bron als WFS te achterhalen of als shapefile/geopackage te downloaden. In elk geval weet je wat je moet zoeken.

1 like

Hartelijk dank voor de antwoorden! Via TOP10NL is het inderdaad gelukt:

Nu nog een beetje finetunen welke wateren er wel en niet in moeten.

Mocht iemand anders deze draad lezen en hetzelfde willen doen, mijn stappen waren:

  1. Uit de TOP10NL-data het bestand “registratiefgebied” gebruiken om de bestuursgrenzen te krijgen.
  2. Uit de TOP10NL-data het bestand “waterdeel” gebruiken om de zee (watertypes “zee”, “droogvallend”, “droogvallend (LAT)”) en binnenwateren (watertype “meer, plas”) te krijgen.
  3. De polygonen voor de zee samenvoegen.
  4. De polygonen voor de meren/plassen groter dan 5 km² selecteren (n.b. sommige meren zoals het IJsselmeer zijn opgesplitst in meerdere polygonen) en samenvoegen.
  5. De zee en binnenwateren van de bestuurskaart aftrekken.

In Python, met GeoPandas:

"""
Generate a plottable outer border for the Netherlands: coastline + BE border + DE border.
"""
from pathlib import Path
import geopandas as gpd
gpd.options.io_engine = "pyogrio"

CRS_AMERSFOORT = "EPSG:28992"

data_dir = Path("data/top10nl-2023")

# Remove GFS files if they exist - for some reason, these mess with MultiPolygons
gfs_files = data_dir.glob("*.gfs")
for gfs in gfs_files:
    gfs.unlink()  # Deletes the file
    print(f"Deleted GFS file: {gfs}")

# Load the raw data
country_row = slice(2, 3)  # Equivalent to [2:3]
country = gpd.read_file(data_dir/"top10nl_registratiefgebied.gml", rows=country_row)
print("Loaded land data")

water = gpd.read_file(data_dir/"top10nl_waterdeel.gml", columns=["gml_id", "lokaalID", "typeWater", "naamOfficieel", "geometry"])
print("Loaded water data")

# Select useful elements
country = country.iloc[0].geometry
sea = water.loc[water["typeWater"].isin(["zee", "droogvallend", "droogvallend (LAT)"])].unary_union

# Sort inland waters by size and select the biggest ones
inlandwaters = water.loc[water["typeWater"] == "meer, plas"]
inlandwaters["surface_area"] = inlandwaters.area
inlandwaters.sort_values("surface_area", inplace=True, ascending=False)

inlandwaters_big = inlandwaters.loc[inlandwaters["surface_area"] >= 5e6].unary_union  # >5 km²

# Subtract water areas
land = country - sea - inlandwaters_big

# Convert to a GeoSeries and save to file
land_series = gpd.GeoSeries(land, crs=CRS_AMERSFOORT)
land_series.to_file("NL_borders.geojson", driver="GeoJSON")

Het resultaat is een GeoJSON van ~14 MB. Als Pastebin het weer doet, zal ik die hier ook nog delen, mocht iemand er wat aan hebben.

3 likes

mooi stukje pythonwerk!

Pyogrio kende ik nog niet, ga ik zeker mijn voordeel mee doen :slight_smile:

De CRS_AMERSFOORT variabele zou ik wellicht aanpassen naar iets als CRS_PROJECT. Stel dat je dit script hergebruikt met een heel ander CRS dan klopt het stukje _AMERSFOORT niet meer.

grote rivieren
Heb je overwogen ‘de grote rivieren’ ook uit te sluiten van de kaart? Je kiest er voor wel de wateren rondom Flevoland, de Ooster- en Westerschelde uit te sluiten met een zwart lijntje. Maar de IJssel, Waal, Rijn, Lek en Maas rivieren hebben alles bij elkaar misschien ook een oppervlakte groter dan 5 km²? Gelden die dan niet ook als “inlandwaters_big”?
In de kaart zie je de rivierenlopen immers ook wel een beetje terug in de witte stroken.