Zo detecteer je taluds uit AHN

Volgens de BGT eisen zijn taluds BGT-inhoud bij een steilheid van 1:4 of meer en een hoogteverschil van minimaal 1m. Toch krijg ik de indruk dat dit maar zelden daadwerkelijk is doorgevoerd, ondanks dat met het AHN een basisbestand beschikbaar is waarin taluds eenvoudig geautomatiseerd gedetecteerd kunnen worden.

Om dit te illustreren heb ik de 0,5 DTM van AHN unit 09BZ1 gebruikt, deze komt uit de eerste lichting AHN5 en is een stukje van het waddeneiland Texel. In QGIS gevisualiseerd ziet deze er als volgt uit:

Doordat o.a. gebouwen weggefilterd zijn bevat dit DTM gaten, wat bij de verdere analyse storend kan zijn. Stap 1 is daarom het vullen van de gaten middels de Fill nodata functie van GDAL. Met een zoekstraal van 200 pixels (= 100m) is dit het resultaat:

Daarna kan met GDAL tool slope de helling berekend worden, waarbij het verstandig is om de helling in procenten i.p.v. graden aan te geven. De kleurenschaal loopt hier van 0% (rood) tot 100% (blauw):

Deze twee stappen kunnen vanuit de processing toolbox van QGIS uitgevoerd worden. Als je deze bewerking voor meerdere bestanden wilt uitvoeren is het echter makkelijker om een kleine batchfile te schrijven en deze in een OSGeo4W shell uit te voeren:

mkdir filled
mkdir slope
for %%I in (DTM\*.tif) do (
gdal_fillnodata.bat %%I filled/%%~nxI -md 200 -b 1 -of GTiff -co COMPRESS=DEFLATE -co PREDICTOR=2 -co ZLEVEL=9
gdaldem slope filled/%%~nxI slope/%%~nxI -of GTiff -b 1 -s 1.0 -p -co COMPRESS=DEFLATE -co PREDICTOR=2 -co ZLEVEL=9
)

Voor de volgende stappen maak ik gebruik van de Generic Mapping Tools. De stappen zijn:

  1. Het converteren van GeoTIFF naar het door GMT geprefereerde NetCDF formaat.
  2. Het clippen van het grid, waarbij waarden kleiner dan 25 op 0 worden gezet en waarden groter dan 25 op 1.
  3. Het wegpoetsen van kleine details middels sluiten en openen, wat door de morfologische operaties dilatatie en erosie wordt bereikt. Deze zijn middels een minimum/maximum value filter geïmplementeerd.
  4. Conversie naar GeoTIFF.

Ook dit kun je uiteraard allemaal in een batch script doen:

mkdir talud
for %%I in (slope\*.tif) do (
gmt grdconvert %%I=gd:GTiff -Gtemp.nc
gmt grdclip temp.nc -Gtemp.nc -Sa25/1 -Sb25/0
gmt grdfilter temp.nc -D0 -Fl2 -Gtemp.nc
gmt grdfilter temp.nc -D0 -Fu2 -Gtemp.nc
gmt grdfilter temp.nc -D0 -Fu2 -Gtemp.nc
gmt grdfilter temp.nc -D0 -Fl2 -Gtemp.nc
gmt grdconvert temp.nc -Gtalud\%%~nxI=gd:GTiff+cCOMPRESS=DEFLATE+cPREDICTOR=2+cZLEVEL=9
)
del temp.nc

Dit is dan het resultaat, de donkere pixels liggen op een talud van 1:4 of steiler:

Als we dan in QGIS alle gridcellen met waarde 1 transparant maken, de transparantie van de gehele laag op 50% zetten en de landelijke luchtfoto eronder laden, dan zien we duidelijk dat bijv. dit fietspad aan weerskanten een talud heeft:

Op deze manier zou je dus zo’n talud grid bij de luchtfotokartering kunnen gebruiken. Of je vectoriseert de taludvlakken en gebruikt deze om de BGT vlakken te knippen. Om “mooie” taluds te maken zal echter waarschijnlijk wat handwerk vereist zijn.

Een reactie plaatsen

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *