GRASS GIS / Síťové analýzy

Z FreeGIS portál
Přejít na: navigace, hledání

GRASS GIS obsahuje sadu nástrojů pro síťové analýzy:

Úvod

Je důležité vědět, že síťové analýzy jsou založeny na heuristických algoritmech, což znamená, že nebude pravděpodobně nalezeno optimální řešení, ale pouze suboptimální (kompromis mezi optimálním řešením a omezením výpočetního času na přípustnou dobu). Směry vektorových linií jsou definovány směrem, jakým byly digitalizovány. Je možné rozlišovat směry tam (forward) a zpět (backward). Všechny moduly totiž obsahují parametry, které dovolují definovat ceny pro pohyb jednotlivými směry. Zakázané směry jsou reprezentovány negativními cenami (např. jednosměrné komunikace, uzavírky silnic, atd.).

Předzpracování dat

Vybereme pouze komunikace, které alespoň částečně leží na území okrsků 1-33 (v.select, viz prostorové dotazy). Vybrané komunikace použijeme jako vstup pro síťové analýzy.

 v.extract input=census_wake2000 output=census_1_33 cats=1-33
 v.select ainput=streets_wake atype=line binput=census_1_33 btype=area output=streets
Zvýrazněné komunikace v okrscích 1 až 33 (zelenou barvou hranici vybraných okrsků)

Náklady na pohyb v síti

Zájmový bod (hotel Raleigh) má souřadnice 78,638259E, 35,77465N (WGS-84). Souřadnice v systému lokace spočteme pomocí v.proj.

 echo "-78.638259 35.77465" | m.proj -i --q
 642306.78|224657.80|0.00

Pomocí v.in.ascii vytvoříme bodovou vrstvu obsahující zájmový objekt.

 echo "642306.78|224657.80|1" | v.in.ascii input=- output=hotel

Pomocí v.distance vypočteme vzdálenost hotelu od nejbližší komunikace.

 v.distance -p from=hotel to=streets upload=dist column=dist --q
 from_cat|dist
 1|13.249617

Pro další analýzy propojíme hotel (uzel) se sítí komunikací (hrany) - v.net s volbou connect, threshold nastavíme o něco větší než vypočtená vzdálenost hotelu od nejbližší komunikace.

 v.net input=streets points=hotel output=streets_net operation=connect thresh=20

Do atributové tabulky přidáme sloupec navcost (v.db.addcolumn) a vypočteme náklady pro pohyb v síti (v.db.update) na základě maximální povolené rychlosti (SPEED).

 v.db.addcolumn map=streets_net column="navcost double precision"
 v.db.update map=streets_net column=navcost value=100 where="SPEED <= 25"
 v.db.update map=streets_net column=navcost value=100000 where="SPEED > 25"

Generování podsítě nákladů provede modul v.net.iso.

 v.net.iso input=streets_net output=streets_net_iso type=line,boundary alayer=1 nlayer=2 \
  afcolumn=navcost ccats=1 costs=200,400,600,800
Výsledek analýzy nákladů