Het grafentheorieconcept van Centrality<\/A> is de afgelopen jaren populair geworden als een manier om inzicht te krijgen in netwerkgedrag. In grafen- of netwerktheorie worden Centrality-maten gebruikt om het relatieve belang van een knooppunt of rand binnen het gehele netwerk te bepalen. Er zijn veel soorten centraliteit. Betweenness centrality meet hoe vaak een knooppunt of rand ligt op het optimale pad tussen alle andere knooppunten in het netwerk. Een hoge betweenness centrality waarde duidt op een cruciale rol in netwerkconnectiviteit. Omdat er momenteel geen Centrality-tools in ArcGIS zijn, heb ik een eenvoudige ArcGIS Pro 2.1 GP toolbox gemaakt die de NetworkX<\/A> Python-bibliotheek gebruikt om dit soort analyses gemakkelijk te integreren in ArcGIS-workflows. <\/P> Centrality Analysis Tools<\/A><\/P><\/P> Figuur 1 Centrality Analysis Tools (CAT)<\/SPAN><\/P>De termen netwerk en graaf worden in deze blog door elkaar gebruikt. Hier verwijst netwerk niet naar een ArcGIS Network dataset. Het betekent simpelweg een set knooppuntobjecten verbonden door randen. In ArcGIS kunnen deze knooppunten punten, polygonen of misschien zelfs andere lijnen zijn. De randen kunnen worden gezien als de polylijnen die twee knooppunten verbinden. Het netwerk kan ook rastergebieden zijn die verbonden zijn door polylijnen die een kostoppervlak doorkruisen met behulp van Cost Connectivity<\/A>.<\/P><\/P> <\/P>Figuur 2 Enkele stedelijke gebieden in het middenwesten verbonden door hoofdwegen. Cost Connectivity werd gebruikt om <\/SPAN><\/P>"natuurlijke" buren te vinden en de steden via het wegennetwerk te verbinden.<\/SPAN><\/P><\/P>Zoals blijkt, is de output van Cost Connectivity (CC) perfecte input voor de Centrality Analysis tools. Laten we eens kijken naar de CC-outputtabel.<\/P><\/P>Figuur 3 Cost Connectivity output met de optie "out_neighbors_paths" geselecteerd.<\/SPAN><\/P><\/P>Laten we nu zien hoe dit overeenkomt met CAT Node Centrality invoerparameters.<\/P><\/P><\/P> Figuur 4 Node Centrality tool parameters <\/SPAN><\/P><\/P>Er zijn een paar dingen die hier vermeldenswaard zijn. Het veld Starting Node Field en Ending Node Field geven geen richting aan. In feite gaat de tool ervan uit dat de kosten hetzelfde zijn om in beide richtingen te bewegen. Ik gebruikte Shape_Length maar had ook PathCost of een ander veld kunnen gebruiken dat de kosten aangeeft om van knooppunt naar knooppunt te bewegen. Deze tabel en de bijbehorende feature class worden gemaakt door Cost Connectivity wanneer je de optie 1out_neighbor_paths7 selecteert. Hoewel de minimum spanning tree-optie werkt, lijkt de Neighbor-output redelijker voor centraliteitsanalyse. Het is ook belangrijk ervoor te zorgen dat je geen verbindingen in je graaf hebt die een knooppunt met zichzelf verbinden en dat alle verbindingskosten groter zijn dan nul.<\/P><\/P><\/P>Figuur 5 Opties voor Node Centrality type<\/SPAN><\/P><\/P>Zowel de Node als Edge Centrality tools vereisen "connected" grafen, wat betekent dat alle knooppunten in de graaf verbonden moeten zijn met de rest van het netwerk. Als je knooppunten hebt die niet verbonden of bereikbaar zijn door alle andere knooppunten, zullen sommige functies niet werken. Dit kan gebeuren als je knooppunten op eilanden hebt die om welke reden dan ook onbereikbaar zijn. Als dit gebeurt, moet je ofwel een verbinding maken en deze een zeer hoge kost geven, of die knooppunten uit de analyse verwijderen.<\/P><\/P>Omdat deze tools specifieke invoer vereisen, heb ik een Graph Info tool toegevoegd zodat gebruikers informatie kunnen krijgen over de grootte en verbondenheid van hun invoergegevens voordat ze proberen de Node of Edge centrality tools uit te voeren.<\/P><\/P>Figuur 6 Graph Info tool biedt cruciale informatie over potentiële invoergegevens zonder eerst een van de tools te hoeven uitvoeren.Nog één ding om in gedachten te houden -- veel van de centraliteitsmaten binnen deze tools vereisen dat het optimale pad tussen alle knooppunten in het netwerk wordt berekend. Dit is behoorlijk rekenintensief, en uitvoeringstijd en computerbronnen groeien exponentieel. Het is het beste om de tool eerst uit te proberen op een vrij klein netwerk van 1000 knooppunten en misschien 5000 verbindingen voordat je probeert grotere datasets te verwerken, gewoon om een gevoel te krijgen voor tijd- en resourcevereisten. Het hierboven getoonde voorbeeld draait in minder dan vijf seconden maar bevat slechts 587 knooppunten en 1469 verbindingen.Download alstublieft de toolbox, probeer hem uit, en laat me weten wat je ervan vindt. Ik hoor graag over jouw gebruikssituaties.
<\/P>
Figuur 1 Centrality Analysis Tools (CAT)<\/SPAN><\/P>De termen netwerk en graaf worden in deze blog door elkaar gebruikt. Hier verwijst netwerk niet naar een ArcGIS Network dataset. Het betekent simpelweg een set knooppuntobjecten verbonden door randen. In ArcGIS kunnen deze knooppunten punten, polygonen of misschien zelfs andere lijnen zijn. De randen kunnen worden gezien als de polylijnen die twee knooppunten verbinden. Het netwerk kan ook rastergebieden zijn die verbonden zijn door polylijnen die een kostoppervlak doorkruisen met behulp van
Figuur 2 Enkele stedelijke gebieden in het middenwesten verbonden door hoofdwegen. Cost Connectivity werd gebruikt om <\/SPAN><\/P>"natuurlijke" buren te vinden en de steden via het wegennetwerk te verbinden.<\/SPAN><\/P><\/P>Zoals blijkt, is de output van Cost Connectivity (CC) perfecte input voor de Centrality Analysis tools. Laten we eens kijken naar de CC-outputtabel.<\/P><\/P>Figuur 3 Cost Connectivity output met de optie "out_neighbors_paths" geselecteerd.<\/SPAN><\/P><\/P>Laten we nu zien hoe dit overeenkomt met CAT Node Centrality invoerparameters.<\/P><\/P><\/P> Figuur 4 Node Centrality tool parameters <\/SPAN><\/P><\/P>Er zijn een paar dingen die hier vermeldenswaard zijn. Het veld Starting Node Field en Ending Node Field geven geen richting aan. In feite gaat de tool ervan uit dat de kosten hetzelfde zijn om in beide richtingen te bewegen. Ik gebruikte Shape_Length maar had ook PathCost of een ander veld kunnen gebruiken dat de kosten aangeeft om van knooppunt naar knooppunt te bewegen. Deze tabel en de bijbehorende feature class worden gemaakt door Cost Connectivity wanneer je de optie 1out_neighbor_paths7 selecteert. Hoewel de minimum spanning tree-optie werkt, lijkt de Neighbor-output redelijker voor centraliteitsanalyse. Het is ook belangrijk ervoor te zorgen dat je geen verbindingen in je graaf hebt die een knooppunt met zichzelf verbinden en dat alle verbindingskosten groter zijn dan nul.<\/P><\/P><\/P>Figuur 5 Opties voor Node Centrality type<\/SPAN><\/P><\/P>Zowel de Node als Edge Centrality tools vereisen "connected" grafen, wat betekent dat alle knooppunten in de graaf verbonden moeten zijn met de rest van het netwerk. Als je knooppunten hebt die niet verbonden of bereikbaar zijn door alle andere knooppunten, zullen sommige functies niet werken. Dit kan gebeuren als je knooppunten op eilanden hebt die om welke reden dan ook onbereikbaar zijn. Als dit gebeurt, moet je ofwel een verbinding maken en deze een zeer hoge kost geven, of die knooppunten uit de analyse verwijderen.<\/P><\/P>Omdat deze tools specifieke invoer vereisen, heb ik een Graph Info tool toegevoegd zodat gebruikers informatie kunnen krijgen over de grootte en verbondenheid van hun invoergegevens voordat ze proberen de Node of Edge centrality tools uit te voeren.<\/P><\/P>
Figuur 6 Graph Info tool biedt cruciale informatie over potentiële invoergegevens zonder eerst een van de tools te hoeven uitvoeren.
Nog één ding om in gedachten te houden -- veel van de centraliteitsmaten binnen deze tools vereisen dat het optimale pad tussen alle knooppunten in het netwerk wordt berekend. Dit is behoorlijk rekenintensief, en uitvoeringstijd en computerbronnen groeien exponentieel. Het is het beste om de tool eerst uit te proberen op een vrij klein netwerk van 1000 knooppunten en misschien 5000 verbindingen voordat je probeert grotere datasets te verwerken, gewoon om een gevoel te krijgen voor tijd- en resourcevereisten. Het hierboven getoonde voorbeeld draait in minder dan vijf seconden maar bevat slechts 587 knooppunten en 1469 verbindingen.
Download alstublieft de toolbox, probeer hem uit, en laat me weten wat je ervan vindt. Ik hoor graag over jouw gebruikssituaties.
Daft comment as I'm a very baby/basic user, but could you provide a "dummy's guide to use"? I have ArcGIS Pro, successfully installed NetworkX and your toolkit, and successfully imported my data (polyline shapefile for all the roads in a country, and an XY output of all the towns/cities in the same country). I'm trying to use the node centrality function - input polyline layer is presumably the roads layer and type of centrality I'm looking for is betweenness, but how am I to understand the starting node field, ending node field, cost/distance/weight field? Really really appreciate any help you can provide! I've attached a screenshot of the road shapefile, with the columns that you can choose from the drop-down fields -
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.