Gebruiker:KKoolstra/Topologie

Uit Wikibooks





Verdiepingshoofdstuk C

Topologische structuur en ruimtelijke analyse


Topologie is een belangrijk kenmerken van geografische informatiesystemen. Het maakt het mogelijk om allerlei soorten analyses te doen, zoals overlay-, buffer- en netwerkanalyse (zie hoofdstuk 10: Toetsing. Bovendien kunnen topologieregels worden gebruikt om inconsistenties in GIS-kaartlagen op te sporen, zoals bijvoorbeeld het niet juist aansluiten van twee aangrenzende gebieden.

Topologische verbanden [1][bewerken]

Een belangrijk kenmerk van geoinformatie is dat tussen de verschillende objecten topologische verbanden bestaan. Het begrip topologie heeft betrekking op de onderlinge ligging van objecten. De topologie (of topologische structuur) van een GIS-bestand kan worden omschreven als de set van regels over hoe objecten (punten, lijnen vlakken) onderling verbonden dienen te zijn, op elkaar dienen aan te sluiten, welke richting zij dienen te hebben en hoeveel exemplaren (nul, één of meer) van het ene in het andere mogen liggen. Een iets nettere definitie is 'het geheel van regels hoe onderling bij elkaar horende geografisch objecten - de punten, de lijnen en de vlakken - hun geometrie delen' (zie bovenstaande figuur).

Voor een GIS kunnen topologieregels aangewend worden om bestanden te controleren. Dit kan achteraf gebeuren, maar ook tijdens het tekenen zelf. Topologie gaat verder dan objectgerichtheid. Topologie beschrijft niet alleen dat de objecten (bijvoorbeeld de lijnen die wegen voorstellen) niet mogen overlappen, maar ook dat zij beginnen bij een andere weg, bij een kruispunt, dat zij wellicht eenrichtingsverkeer hebben, en dergelijke. Door topologische (controle- en of teken-) tools, is een bestand dat voor navigatiedoeleinden gebruikt wordt, van zo hoge kwaliteit dat de gebruikers 'nooit' de verkeerde kant op worden gestuurd.

Een voorbeeld: op het oog is het misschien duidelijk dat op een kaart een huis A, gelegen in Wijk B, via de wegen C, D en vervolgens E, naar huis F in Wijk G kan komen. Voor een GIS betekent dit dat de wegen C, D en E elkaar moeten raken, dat huis A in (en niet ernaast!) het vlak van Wijk B moet liggen, en dat huis F in Wijk G moet liggen. Dit kan exact worden afgedwongen door die topologische regels. Een huis ligt in een wijk, niet op een weg of in het water. Een weg kent een rijrichting en komt bij minimaal één andere weg uit. Die rijrichting is nodig om te zien of anders niet een andere route bereden had moeten worden. Behalve voor navigatiedoeleinden is dit ook handig voor netwerkanalyses, het plannen van optimale busroutes, en dergelijke.

Topologie bij het digitaliseren van kaarten[2][bewerken]

Wel of niet objectgeoriënteerd tekenen bepaalt de waarde ervan voor een GIS. In dit voorbeeld zijn twee aangrenzende kadastrale percelen op drie verschillende wijzen getekend. Links zijn lijnen getekend, rechts zijn objecten getekend (objectgeoriënteerd).


Met name bij CAD-data en handmatige digitalisatie van bestaande kaarten en tekeningen worden lijnen van objecten niet altijd netjes exact op elkaar aangesloten, zogeheten undershoots. Dat is ook niet erg wanneer deze data 'slechts' voor visualisatie wordt gebruikt, zolang er maar niet te ver op wordt ingezoomd. Het is dan ook niet erg dat de tekenaars de lijnen te ver doortrekken daar waar ze op een andere lijn hadden moeten eindigen, zogeheten overshoots (of dangles). Met andere woorden CAD-bestanden worden lang niet altijd wat we noemen 'objectgeoriënteerd' opgebouwd. 'Spaghetti-digitalisering' is de wat licht negatief bedoelde naam voor het 'niet objectgericht karteren of digitaliseren'. Bij verwerking in een GIS is dit objectgeoriënteerd zijn vrijwel altijd een noodzaak.

Met objectgeoriënteerd (ook vaak objectgericht genoemd) wordt bedoeld dat de lijnen niet getekend zijn om allerlei grenzen aan te geven, maar om de objecten aan te geven. Begin- en eindpunten van lijnen zijn niet lukraak gekozen, maar stoppen en starten daar waar het object ook begint en eindigt. Ook voor vlakken geldt dat die niet omgeven worden door lukraak getekende lijnen, maar door één omhullende lijn. Twee rechthoekige aangrenzende percelen worden niet weergegeven door 7 of 8 lijnen, maar door 2 vlakken (zie figuur). Bovendien zijn de van een objectgeoriënteerde dataset vrijwel altijd ook meteen koppelbaar gemaakt aan beschrijvingen in andere (administratieve) databases.

Tijdens het digitaliseren met CAD-software of achteraf met een GIS is middels topologische regels af te dwingen dat lijnen en vlakken objectgeoriënteerd worden getekend of opgeslagen. Er is bijvoorbeeld in te stellen dat lijnen op minimaal twee andere lijnen moeten aansluiten, anders had die lijn één lijn moeten zijn. Of dat vlakken (in het geval van grondgebruik of percelen) elkaar niet mogen overlappen.

Slivers[bewerken]

Slivers zijn niet sluitende of overlappende vlakken, daar waar dat niet het geval zou mogen zijn. Vaak zie je dit pas wanneer er sterk is ingezoomd op deze grensgebieden.

Zoals je bij lijnen under- en overshoots hebt, zo heb je bij vlakken zogeheten slivers, ook wel sliver-polygonen genoemd. Een Nederlandse term bestaat hier niet voor. Slivers zijn polygonen (vlakken) die elkaar onterecht niet raken - er zitten dan gaten tussen de vlakken - of elkaar onterecht overlappen. Zo dienen gemeentegrenzen (de omtrekken van de vlakken die gemeentes beschrijven) van naburige gemeente te sluiten. Er mogen nooit gebieden zijn waarvoor geldt dat die niet tot een bepaalde gemeente vallen. Ook mogen de gemeentes elkaar niet overlappen. Bij veel soorten geo-informatie mogen géén slivers vóórkomen. Denk aan bodemkaarten, hoogtezones, geluidsniveau's en allerlei bestuurlijke indelingen. Er kan namelijk op één plek altijd maar één (niet meer en niet minder) waarde van toepassing zijn; er is op een bepaalde plek maar één bodemsoort, één hoogtezone, een geluidsniveau en één provincie van toepassing. Er kan op één punt niet géén bodemsoort voorkomen, of twee bodemsoorten.

Slivers ontstaan vaak door het samenvoegen (of 'mergen') van verschillende bestanden van verschillende nauwkeurigheid of beheerd door verschillende instanties. Bijvoorbeeld: meerdere, naburige gemeentes leveren de door hun beheerde of in kaart gebrachte gemeentegrenzen aan één persoon die ze wil combineren.

Met allerlei GIS-tools zijn deze tekortkomingen (want dat zijn slivers!) op te sporen, en soms ook gedeeltelijk automatisch te verwijderen binnen een bepaalde marge en - helaas - met een risico dat de data toch gewijzigd wordt waar je dat niet wilt. Ook kunnen deze fouten handmatig verbeterd worden. Met allerlei snapping-tools kunnen - achteraf - of bij het tekenen zelf minieme over- en undershoots, dus ook slivers, voorkomen of verbeterd worden. Bij het gebruik van snapping tijdens het tekenen of wijzigen, wordt door het GIS-programma afgedwongen dat de punten goed worden geplaatst. Punten die je 'op zicht' ongeveer over een vertex (knikpunt) van een naburig vlak of lijn heen legt, komen zo ook daadwerkelijk exact op die ene vertex te liggen.

Beter is het om topologieregels in te voeren. Bijvoorbeeld: "een (gemeente)vlak dient over de gehele omtrek aangrenzend te zijn met een ander (gemeente)vlak (of zee)". Veel, duur en intensief correctiewerk wordt zo voorkomen en analyses zullen daarna betrouwbaar zijn en geen hiaten vertonen, zoals lantaarnpalen die niet aan een beheerder of gemeente worden toebedeeld.

Overigens: voor sommige vlakken kunnen mogen wél overlappen en gaten voorkomen; die overlappen worden dan ook géén slivers genoemd. Denk aan stankcirkels rondom dicht bij elkaar liggende varkensboerderijen, of verzorgingsgebieden van concurrerende winkelcentra.

Soorten topologieën [3][bewerken]

Een GIS-model gebruikt punten om lijnen en lijnen om vlakken te beschrijven. (b=punt en of vertex, c=lijnsegment, l=lijn, p=polygoon (vlak). Dankzij deze strakke hiërarchie kunnen topologieregels worden afgedwongen en kunnen inconsistenties tussen informatielagen worden opgespoord en verbeterd. Daarnaast kunnen GIS-modellen zonder inconsistenties als netwerkmodellen worden gebruikt.


Topologie is voor een GIS van wezenlijk belang. Wanneer we ruimtelijk onderzoek doen, of op basis van kaarten beslissingen willen nemen, dan willen we dat de objecten, patronen en hun onderlinge relaties op de juiste plek liggen, niet met elkaar in tegenspraak zijn. De hoofdstad van een provincie ligt ook daadwerkelijk in die provincie, de zijrivier eindigt ook exact in een hoofdrivier, en een weg de is afgesloten met paaltjes is ook in mijn GIS afgesloten naar de hoofdweg toe. En in het tweede figuur: Een gemeentegrens gaat niet door de zee, maar komt overeen met de objecten (hier: water en grasland) van het eiland. Alleen wanneer bestanden onderling deze zekerheden hebben, kunnen we deze ruimtelijke informatie met een goed resultaat gebruiken voor:

  • navigatievragen; bijvoorbeeld: hoe kan ik het kortst of snelst van A via B naar C.
  • netwerkanalyses; bijvoorbeeld: berekeningen die niet gebaseerd zijn op absolute afstanden ('door de lucht') maar op relatieve afstanden ('via de weg') en capaciteitsvraagstukken (de weerstand of snelheden zijn dan bekend per lijnstuk/wegsoort).
  • rijtijdengebieden weergeven; bijvoorbeeld wat is het exacte bereik vanaf verschillende ambulance- of brandweerposten na melding (binnen 12 minuten en binnen 15 minuten), en wat zijn misschien betere locaties voor deze posten, nu er een nieuwe woonwijk is bijgebouwd.
  • het uitvoeren van overige ruimtelijke analyses op zowel route(lijn-)netwerken als vlakobjecten.

Dit betekent dat er verschillende soorten topologieën kunnen worden gebouwd. Een netwerktopologie (zoals in het laatste voorbeeld) focust op de onderlinge relaties tussen knooppunten, schakels en rijrichtingen in een netwerk. Bij een polygoon-topologie gaat het om de relaties tussen gebieden en de relaties daartussen (bijvoorbeeld dat polygonen elkaar niet mogen overlappen, maar ook geen gaten mogen bevatten). Bij een punt-topologie gaat het ten slotte om de onderlinge ligging van punten.

Door de topologische verbanden in een bestand op te slaan in de database, wordt het mogelijk om bepaalde analyses efficiënt te doen. Zo is het bijvoorbeeld mogelijk om bij een netwerk-topologie de korste of snelste weg te zoeken van A naar B. Doordat ieder lijnstuk 'weet' aan welke knooppunten deze grenst en ieder knooppunt welke lijnstukken er samen komen, is het mogelijk om stap voor stap paden te zoeken. Doordat bovendien de lengte van lijnen standaard wordt opgeslagen als lijnkenmerk - en het mogelijk is dit uit te breiden met eigenschappen als snelheid, rijrichting, etc., is het mogelijk om ook bijvoorbeeld een 'snelste' route te zoeken in een netwerktopologie.

Donutpolygonen[bewerken]

Donutpolygonen en nut/noodzaak topologieregels. Donutpolygonen zijn vlakken met gaten er in. Door topologieregels toe te passen wordt afgedwongen dat er geen slivers/gaten ontstaan. De gebruikte vertices voor vlakken die aangrenzend moeten zijn met andere vlakken of lijnen, zijn zo altijd en exact overeenkomstig met die van de aangrenzende vlakken of de er langslopende lijnen. Dit bespaart beheerwerk en levert consistente bestanden op die zich voor veelsoortige, ruimtelijke analyses lenen.


In het bovenstaande figuur kunnen we het percentage grasland en percentage water per gemeente berekenen. We krijgen niet het probleem dat er dubbeltellingen zijn, omdat het grasland als een gemeentevullende vlak is getekend, met er overheen een meer... Dat is de reden voor het bestaan van zogenaamde donutpolygonen. Een typisch Amerikaanse term (GIS en de donut zijn hier beiden zo'n beetje uitgevonden!) voor vlakken waar een gat in zit. Voor cartografische toepassingen is dit principe niet altijd nodig, maar voor analytische (GIS) toepassingen wel. Zo zijn er in Nederland kadastrale percelen die gaten kennen: Denk aan en plein, waarbinnen een Kerk staat. De kerk staat op een kadastraal perceel van een kerkelijke gemeente, het plein is vaak van een gemeente. Bij automatische, ruimtelijke (GIS-) analyses ("van wie is deze kerk?") moet de uitkomst niet zijn: twee eigenaren. Bij 'oude' GIS-software en oude geo-informatie-bestanden was de uitkomst in dergelijke gevallen nog wel eens dat er twee percelen / perceeleigenaren tevoorschijn kwamen. Sinds 15 jaar is dit geen probleem meer dankzij de donutpolygonen. Eén vlak kan één of meer gaten kennen. In het figuur zie je een meer met een gat, en een eiland met een gat. Er zijn dus twee donutpolygonen. Middels topologische regels worden onderlinge mogelijke gaten en overlaps (slivers) voorkomen.

Coördinaten creëren met een GIS indien er geen coördinaten zijn [4][bewerken]

Hierboven hebben we gezien dat door de topologische structuur van GIS het mogelijk is om objecten ruimtelijk aan elkaar te relateren. Deze 'ruimtelijke intelligentie' van GIS maakt het ook mogelijk om coördinaten te creëren in situaties waar deze nog niet aanwezig zijn in het oorspronkelijke bestand, maar waar er wel indirecte locatiegegevens zijn, zoals de een relatieve locatie of een adres.

Geocoderen[bewerken]

Geocoderen is het toevoegen van x- en y-coördinaten aan gegevens die die nog niet hebben op basis van een bepaalde locatieaanduiding. Die locatieaanduiding kan nauwkeurig (adres, dus postcode met huisnummer) zijn, of minder nauwkeurig (zoals alleen de postcode of een gemeentenaam). Twee voorbeelden:

  • Een lijst met gemeentes waar zich een vestiging bevindt van universiteiten of andere objecten, is in een geo-informatie-bestand om te zetten door de zwaartepunten van de gemeente toe te voegen als extra kolom aan die lijst. De oorspronkelijke lijst bevatte een kolom gemeentenamen en een kolom met de naam van die universiteit. Na het geocoderen is er een kolom x en een kolom y toegevoegd. Door deze actie is de x en de y (dus de locatie) per adres bekend, en dus kunnen al deze adressen op de kaart worden weergegeven! Voor deze actie dient de GIS-ser over een bestand met gemeentes te beschikken.
  • Een lijst met adressen van restaurants is door het geocoderen om te zetten in een (geo-informatie-) bestand waarmee direct een kaart gemaakt kan worden met restaurants. Er zijn commerciële aanbieders voor geocoderen, omdat er anders grote en dure adressenbestanden zouden moeten worden ingekocht.

Lineair refereren[bewerken]

Lineair refereren is het toevoegen van x- en y-coördinaten aan gegevens op basis van een opgegeven afstand vanaf een bepaald nulpunt op een bepaalde lijn. Stel je een snelweg voor, de A50, die begint met kilometrering 0 (het nulpunt) bij Zwolle en eindigt bij kilometrering 58 in Arnhem (zie onderstaande figuur)


Mogelijke input bij lineair refereren. Het belangrijkste is de beschikking over een 'as' (lijn, zoals een snelweg of meetraai), waarvan het nulpunt bekend is, en hoe met de lijn mee een afstand oploopt. Administratieve tabel gegevens die refereren aan dezelfde afstandsmaat, kunnen nu op deze lijn geprojecteerd worden. In blauw zijn de benodigde kolommen die bij deze techniek gebruikt worden. (zie voor het resultaat de figuur hierna).


De locatie van kruisende infrastructuur (zoals een duiker onder de weg), ongelukken of de onderhoudstoestand van het wegdek kan nu met een afstand (kilometrering) worden aangeduid tezamen met de naam van die weg. Is er op de A50 een ongeluk geregistreerd bij kilometrering 7,5 (7.500 meter in de figuur), dan is exact de x- en y-coördinaat van dat ongeluk te berekenen, namelijk op exact op (7,5/58)e deel va die A50, startende bij het nulpunt in Zwolle. Noodzakelijk hierbij is uiteraard een goed gedigitaliseerde A50. Bovendien moet dat niet zomaar een lijnobject zijn, maar het moet bekend zijn in welke richting de kilometrering oploopt. In de tabel is de blauwe pijl een aantal 'blauwe' kolommen aangegeven. Deze kolommen zijn essentieel voor het lineair refereren. Op het moment dat lineair refereren niet gebruikt wordt om puntobjecten, maar lijnobjecten weer te geven, spreekt men van dynamische segmentatie. Dynamische segmentatie is dus een bijzondere soort van lineair refereren. De bovenste tabel (inspectiegegevens met de onderhoudsstatus) van de figuur geeft hier een voorbeeld van. In de figuur hierna is het resultaat te zien.


Mogelijke output als resultaat van lineair refereren. Zowel puntgegevens (gebeurtenissen) als kenmerken die zich afspelen op de as (lijngegevens) kunnen zo geprojecteerd worden op een kaart, zonder dat er oorspronkelijk van een coördinaat sprake was! In dit geval worden twee verschillende tabellen visueel gecombineerd. Er kan geanalyseerd worden of het aantal ongevallen over een bepaald tijdvak een relatie heeft met de onderhoudsstaat.


Met lineair refereren worden tekeningen dus automatisch gegenereerd. Door - simpel gezegd - een GIS naar een database te laten kijken, wordt de kaart gemaakt. Het bijzondere is dat op het moment dat die database verandert, de kaart ook verandert. Wanneer in het bovenstaand voorbeeld een wegvak bij nader inzien als kwaliteit toch 'Goed' in plaats van 'Matig' met zich meekrijgt, dan verschiet onmiddellijk de kleur van oranje naar groen. De moeite die het bijhouden van tekeningen kost is daardoor tot een minimum beperkt, terwijl de actualiteit en juistheid van de tekening maximaal geborgd zijn. Het getoonde voorbeeld maakt duidelijk dat GIS ook een duidelijke rol kan spelen op het gebied van assetmanagement, dat wil zeggen, het beheren (bouwen, onderhouden, gebruiken en slopen) van infrastructuur.


Reverse geocoding[bewerken]

Hierboven zijn geocoderen (Engels: 'geocoding') en lineair refereren behandeld. Wanneer het omgekeerde gebeurt - voor beíde technieken - wordt dit 'reverse geocoding' genoemd. Hier is geen Nederlandse term voor, maar het betekent zoiets als omgekeerd geocoderen. Het wordt niet zo vaak gebruikt. Reverse geocoding is het omzetten van een bekende locatie (met een x- en y- coördinaat) naar een adres. Het kan op twee manieren:

  1. De uitkomst is een kilometrering langs een een bepaalde weg, en het juiste wegnummer. Bijvoorbeeld de locatie van een gevaarlijke tankvrachtwagen met GPS, die in een file is vast komen te zitten. Dankzij de GPS is de locatie bekend, dankzij een GIS kan deze locatie worden omgerekend naar wegnummer (A50) en de juiste kilometrering, bijvoorbeeld 32,421
  2. De uitkomst is een (post)adres.

Hieronder zie je dit schematisch weergegeven.

input ouput
(x1,y1) (wegnummer = "A50", kilometrering = 32,421)
(x2,y2) (straatnaam = "Stationsstraat", huisnummer = 12, plaatsnaam = "Kedichem")

Een offset (de minimale afstand van de locatie tot de weg) kan ook tot de ouput behoren. Bijvoorbeeld de locatie van een zendmast die zich 53 meter naast de middenberm van een snelweg blijkt te bevinden:

input ouput
(x3,y3) (wegnummer = "A50", kilometrering = 32,421, offset = 53 meter)

De meeste GIS-applicaties kennen deze functie, waarmee dan vele locaties gelijktijdig en automatisch kunnen worden omgezet naar dergelijke (administratieve) aanduidingen.


Voetnoten:

  1. Deze paragraaf is een bewerking van een deel van het hoofdstuk Vervolg GIS van het wikiboek Geo-visualisatie; versie: zie [1], auteurs: zie [2]
  2. Deze paragraaf is een bewerking van een deel van het hoofdstuk Inleiding GIS van het wikiboek Geo-visualisatie; versie: zie [3], auteurs: zie [4]
  3. Deze paragraaf is een bewerking van een deel van het hoofdstuk Vervolg GIS van het wikiboek Geo-visualisatie; versie: zie [5], auteurs: zie [6]
  4. Deze paragraaf is een bewerking van een deel van het hoofdstuk Vervolg GIS van het wikiboek Geo-visualisatie; versie: zie [7], auteurs: zie [8]
← B. Geo-informatie KKoolstra
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.