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 Processing ► Network Analysis. Du kan se att det finns många verktyg tillgängliga:

../../../_images/select_network_algorithms.png

Ö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.

../../../_images/network_map.png

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.

  1. Öppna :guilabel:Kortaste vägen (punkt till punkt)-algoritmen

  2. Välj network_lines för Vektorlager som representerar nätverk

  3. Använd Shortest för Stigtyp att beräkna`

    Använd dessa två punkter som start- och slutpunkter för analysen:

    ../../../_images/start_end_point.png
  4. 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.

  5. Gör samma sak, men välj den plats som är märkt med Ending point för :guilabel:End point (x, y)

  6. Klicka på knappen Run:

    ../../../_images/shortest_point.png
  7. 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:

    ../../../_images/shortest_point_result.png
  8. Ö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:

    ../../../_images/shortest_point_attributes.png

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?

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.

  1. Öppna :guilabel:Kortaste vägen (punkt till punkt)-algoritmen

  2. Fyll i Input layer, Startpunkt (x, y) och Slutpunkt (x, y) som vi gjorde tidigare

  3. Välj Fastest som Stigtyp att beräkna`

  4. Öppna menyn Avancerad parameter

  5. Ändra Förvalshastighet (km/h) från standardvärdet 50 till 4

    ../../../_images/shortest_path_advanced.png
  6. Klicka på Run

  7. 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.

  8. Öppna fältkalkylatorn genom att klicka på ikonen calculateField

  9. Lägg till ett nytt fält för att lagra sökvägskostnaden i minuter.

    ../../../_images/shortest_path_conversion.png

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:

../../../_images/speed_limit.png

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 Nätverksanalys ► Kortaste vägen (punkt till punkt) och väljer manuellt start- och slutpunkterna.

  1. Öppna Nätverksanalys ► Kortaste vägen (punkt till punkt)-algoritmen

  2. Välj network_lines för parametern Vektorlager som representerar nätverk

  3. Välj Fastest som Stigtyp att beräkna`

  4. Välj Startpunkt (x, y) och Slutpunkt (x, y) som vi gjorde tidigare

  5. Öppna menyn Avancerade parametrar

  6. 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.

    ../../../_images/speed_limit_parameters.png
  7. Klicka på Run-knappen

  8. Stäng av network_lines-lagret för att bättre se resultatet

    ../../../_images/speed_limit_result.png

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

Network Analysis ► Service area (from point) ä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.

  1. Avmarkera alla lager utom network_points

  2. Öppna algoritmen :menyval:`Nätverksanalys --> Serviceområde (från lager)`

  3. Välj network_lines för :guilabel:Vektorlager som representerar nätverk

  4. Välj network_points för Vektorlager med startpunkter

  5. Välj Kortaste i Stigtyp att beräkna`

  6. Ange 250 för parametern Resekostnad

  7. Klicka på Run och stäng dialogrutan

    ../../../_images/service_area.png

    Utgångsskiktet representerar den maximala vägen du kan nå från punkterna med ett avstånd på 250 meter:

    ../../../_images/service_area_result.png

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.