Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
6.3. Lektion: Nätverksanalys
Att beräkna det kortaste avståndet mellan två punkter är en vanlig GIS-uppgift. Verktyg för detta finns i Processing Toolbox.
Målet för den här lektionen: lära sig att använda Nätverksanalys-algoritmer.
6.3.1. ★☆☆ Följ med: Verktyg och data
Du kan hitta alla algoritmer för nätverksanalys i menyn
. Du kan se att det finns många verktyg tillgängliga:
Öppna projektet exercise_data/network_analysis/network.qgz
. Den innehåller två lager:
network_points
network_lines
Skiktet network_lines har redan en stil som hjälper till att förstå vägnätet.

Verktygen för kortaste väg ger möjlighet att beräkna antingen den kortaste eller den snabbaste vägen mellan två punkter i ett nätverk, givet:
start- och slutpunkter markerade på kartan
startpunkt väljs på kartan och slutpunkter hämtas från ett punktlager
startpunkter hämtas från ett punktlager och slutpunkt väljs på kartan
Låt oss börja.
6.3.2. ★☆☆ Beräkna den kortaste vägen (punkt till punkt)
Med :menyval:`Nätverksanalys --> Kortaste vägen (punkt till punkt)` kan du beräkna det kortaste avståndet mellan två manuellt valda punkter på kartan.
I det här exemplet ska vi beräkna den kortaste (inte snabbaste) vägen mellan två punkter.
Öppna :guilabel:
Kortaste vägen (punkt till punkt)
-algoritmenVälj network_lines för Vektorlager som representerar nätverk
Använd
Shortest
för Stigtyp att beräkna`Använd dessa två punkter som start- och slutpunkter för analysen:
Klicka på knappen … bredvid Startpunkt (x, y) och välj den plats som är märkt med
Startpunkt
i bilden. Aktivera snäppningsalternativen för ett exakt val. Koordinaterna för den klickade punkten läggs till.Gör samma sak, men välj den plats som är märkt med
Ending point
för :guilabel:End point (x, y)
Klicka på knappen Run:
Ett nytt linjeskikt skapas som representerar den kortaste vägen mellan de valda punkterna. Avmarkera skiktet
network_lines
för att se resultatet bättre:Öppna attributtabellen för utdataskiktet. Den innehåller tre fält som representerar koordinaterna för start- och slutpunkterna samt kostnaden.
Vi valde
Kortaste
som Stigtyp att beräkna`, så kostnaden representerar avståndet, i lagerenheter, mellan de två platserna.I vårt fall är det kortaste avståndet mellan de valda punkterna cirka
1000
meter:
Nu när du vet hur du ska använda verktyget kan du testa andra platser.
6.3.3. ★★☆ Prova själv: Snabbaste vägen
Med samma data som i föregående övning, försök att beräkna den snabbaste vägen mellan de två punkterna.
Hur lång tid behöver du för att ta dig från start till slutpunkt?
Svar
Öppna
och fyll i dialogen som:Kontrollera att Sökvägstyp att beräkna är
Snabbast
.Klicka på Run och stäng dialogrutan.
Öppna nu attributtabellen för utdataskiktet. Fältet cost innehåller restiden mellan de två punkterna (som en bråkdel av timmar):
6.3.4. ★★☆ Följ med: Avancerade alternativ
Låt oss utforska några fler alternativ i verktygen för nätverksanalys. I förra övningen beräknade vi den snabbaste vägen mellan två punkter. Som du kan föreställa dig beror tiden på resans hastighet.
Vi kommer att använda samma lager och start- och slutpunkter som i de tidigare övningarna.
Öppna :guilabel:
Kortaste vägen (punkt till punkt)
-algoritmenFyll i Input layer, Startpunkt (x, y) och Slutpunkt (x, y) som vi gjorde tidigare
Välj
Fastest
som Stigtyp att beräkna`Öppna menyn Avancerad parameter
Ändra Förvalshastighet (km/h) från standardvärdet
50
till4
Klicka på Run
När algoritmen är klar stänger du dialogrutan och öppnar attributtabellen för utdatalagret.
Fältet cost innehåller värdet enligt den hastighetsparameter du har valt. Vi kan konvertera cost-fältet från timmar med bråkdelar till de mer lättlästa minuter-värdena.
Lägg till ett nytt fält för att lagra sökvägskostnaden i minuter.
Nu är det klart! Nu vet du hur många minuter det tar att ta sig från en punkt till en annan om hela nätverket har en hastighet på ”4 km/h”.
6.3.5. ★★★★ Kortaste vägen med hastighetsbegränsning
Verktygslådan för nätverksanalys har andra intressanta alternativ. Titta på följande karta:

skulle vi vilja veta den snabbaste vägen med hänsyn till hastighetsgränserna för varje väg (etiketterna representerar hastighetsgränserna i km/h). Den kortaste vägen utan att ta hänsyn till hastighetsbegränsningarna skulle naturligtvis vara den lila vägen. Men på den vägen är hastighetsgränsen 20 km/h, medan man på den gröna vägen får köra i 100 km/h!
Precis som i den första övningen använder vi
och väljer manuellt start- och slutpunkterna.Öppna
-algoritmenVälj network_lines för parametern Vektorlager som representerar nätverk
Välj
Fastest
som Stigtyp att beräkna`Välj Startpunkt (x, y) och Slutpunkt (x, y) som vi gjorde tidigare
Öppna menyn Avancerade parametrar
Välj fältet speed som parameter för Speed Field. Med detta alternativ kommer algoritmen att ta hänsyn till hastighetsgränserna för varje väg.
Klicka på Run-knappen
Stäng av
network_lines
-lagret för att bättre se resultatet
Som du kan se är den snabbaste vägen inte den kortaste.
6.3.6. ★★☆☆ Serviceområde (från lager)
Algoritmen :menuselection:Nätverksanalys --> Serviceområde (från lager)
kan svara på frågan: givet ett punktlager, vilka är alla nåbara områden givet ett avstånd eller ett tidsvärde?
Observera
är samma algoritm, men här kan du manuellt välja en punkt på kartan.
Med tanke på ett avstånd på 250
meter vill vi veta hur långt vi kan gå i nätverket från varje punkt i skiktet network_points.
Avmarkera alla lager utom
network_points
Öppna algoritmen :menyval:`Nätverksanalys --> Serviceområde (från lager)`
Välj
network_lines
för :guilabel:Vektorlager som representerar nätverk
Välj
network_points
för Vektorlager med startpunkterVälj
Kortaste
i Stigtyp att beräkna`Ange
250
för parametern ResekostnadKlicka på Run och stäng dialogrutan
Utgångsskiktet representerar den maximala vägen du kan nå från punkterna med ett avstånd på 250 meter:
Visst är det häftigt?
6.3.7. Sammanfattningsvis
Nu vet du hur man använder Nätverksanalys-algoritmen för att lösa problem med kortaste och snabbaste vägen.
Vi är nu redo att utföra rumslig statistik på vektorskiktsdata. Då kör vi!
6.3.8. Vad händer härnäst?
Nu ska du få se hur du kör algoritmer för rumslig statistik på vektordataset.