geologyidea.com
Viac

Ako vytvoriť smerovateľnú sieť s PGRouting

Ako vytvoriť smerovateľnú sieť s PGRouting


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.


Mám dve sady údajov

Tabuľka A: Stanice - obsahuje poštové smerovacie číslo (ktoré môžem previesť na lat / long), meno a poštové smerovacie číslo. Tabuľka B: Pripojenia - obsahuje možný zoznam pripojení vrátane zdroja, cieľa (obidva vyjadrené ako trojpísmenové kódy), vzdialenosti a maximálnej rýchlosti (z týchto dvoch parametrov môžem vypočítať cenu).

Chcem vytvoriť smerovateľnú sieť - z pohľadu som zistil, že program PGRouting môže robiť, čo potrebujem, ale takmer všetky návody, ktoré som našiel, sú založené na cestných sieťach.

Aký je najlepší spôsob prevodu údajov, ktoré mám, na smerovateľnú sieť? Nie som nastavený na PostGIS / PGRouting, ale zatiaľ som nenašiel lepšie riešenie - nakoniec bude okolo 3000 staníc a viac ako 5000 pripojení.


Nemal by byť problém s použitím PgRouting na tento účel a malo by byť celkom jednoduché pripraviť vaše dáta ako smerovateľnú sieť.

Staviam sieť podobnú tej vašej na základe údajov o transtooloch pre Európu a fungovala do hodiny. Načítajte údaje do databázy akýmkoľvek spôsobom, ktorý máte, a môžu byť pripravené pomocou jazyka SQL - použite tento príklad a mali by ste byť na ceste:

http://workshop.pgrouting.org/chapters/topology.html


Smerovacia sieť z OSM

Hľadám nejaký dobrý nástroj na importovanie map.osm do postgresu a vytvorenie ďalších trás, ktoré sa zobrazia geoserverom. Potrebujem trasu s niekoľkými textovými informáciami o vrcholoch (napr. Mesto, adresa, číslo adresy atď.)

osm2pgrouting - Import údajov OSM do databázy pgRouting
osm2postgis -Import údajov OSM do PostGIS
osm2po - nástroj na prevod údajov OSM do smerovateľného formátu
osm4routing - Analyzátor dát OpenStreetMap, ktorý z nich urobí hrany uzlov prispôsobené na smerovanie aplikácií

Nemám veľa skúseností s GIS, tak aký nástroj je pre mňa najlepší? Skúšam osm2pgrouting, ale vo výsledku mám tabuľky, ktoré neobsahujú údaje o vrcholoch (iba lat. A alt.) Ďakujem za odpovede. AKTUALIZÁCIA Informácie o aplikácii: Budem mať webového a androidového klienta, kde užívateľ zadá textovú hodnotu začiatočného a koncového uzla a ďalej cez geoserver dostane napríklad WMS s vrcholmi zadanej trasy
Mojím výsledkom by mohli byť niektoré hrany a uzly, ako je tento, napríklad: sequence_num, edge_distance a informácie o okrajových vrcholoch ako osm_id, nejaká textová hodnota, lat alt atď.


SQL: Ako získať zdroj / cieľ daných súradníc v tvare riadku v tabuľke PostGIS?

Načítal som súbor tvaru riadku v PostGIS a použil som program pgr_createTopology v nástroji pgRouting, aby sa tabuľka dala upraviť pridaním zdroja a cieľa (priraďte 2 koncové uzly čísla zdroja a cieľového čísla riadku). Nasledujúci obrázok bol súčasťou tabuľky:

Teraz nejaké mám súradnice koncových uzlov, ktoré patria do riadkov v tabuľke, a chcem vedieť, aký počet zdroje / ciele zodpovedali týmto súradniciam.

Napríklad v tabuľke vyššie predpokladajme, že 259463.392, 2737830.062 bol jedným z koncových uzlov riadku> a riadku>, potom má táto súradnica source / target = 175

Som nováčikom v SQL a skúsil nejaký dotaz, ale dostal chyby:

Myslím, že by som mohol vedieť, čo chcem, ak stĺpec source / target obsahuje informácie o súradnici uzla, ale zdá sa, že nie, sú to iba stĺpce obsahujúce čísla.

Mám tabuľku vrcholov, ako je uvedené nižšie:

Na získanie nasledujúcej tabuľky som použil nasledujúci dotaz:

a stále hľadám, či by som mohol dostať svoju potrebu cez 2 tabuľky vyššie.

Skúsil som teda dotaz nižšie a dostal som 2 riadky blízko danej súradnice:

a neskôr som z tabuľky zistil, že na prvom obrázku je súradnica source / target = 54 z id 170/51, ale stále je to neefektívne.

Zaujímalo by ma, že existujú spôsoby, ako nájsť rovnaké číslo zdroja / cieľa, ktoré v tomto prípade obsahujú riadok> a riadok>, keď som zistil, že daná súradnica sa nachádza medzi týmito dvoma riadkami?

Na základe tabuľky vrcholov som pomocou nasledujúceho dotazu získal zodpovedajúce číslo zdroja, ktoré je tiež point id, danej súradnice:


Používanie objektov trajektórie MovingPandas

Mobilitydb-sqlalchemy tiež poskytuje prvotriednu podporu pre objekty MovingPandas Trajectory, ktoré je možné nainštalovať ako voliteľnú závislosť tejto knižnice. Používanie tejto triedy Trajectory namiesto obyčajných DataFrames nám umožňuje využívať oveľa bohatšiu funkcionalitu nad údajmi trajektórie, ako je rýchlosť analýzy, interpolácia, rozdelenie a zjednodušenie bodov trajektórie, výpočet ohraničujúcich polí atď. Aby ste mohli využívať túto funkciu, nastavili ste pri deklarovaní modelu označte príznak use_movingpandas na hodnotu True, ako je uvedené v nasledujúcom útržku kódu.

Keď teraz zadáte dotaz na túto tabuľku, automaticky získate údaje analyzované do objektov trajektórie bez toho, aby ste museli robiť čokoľvek iné. Funguje to aj počas vkladania údajov & # 8211, ktoré môžete priamo priradiť svojim objektom trajektórie movingpandas do stĺpca výletu. V nasledujúcom útržku kódu ukážeme, ako vkladanie a dopytovanie funguje v režime movingpandas.


Údaje uvedené v tomto príspevku pochádzajú z prieskumu uskutočneného medzi používateľmi hromadnej dopravy, najmä cestujúcimi dochádzajúci (k dispozícii online na: https://de.surveymonkey.com/r/57D33V6). Dotazník sa okrem iných otázok pýta, kam dochádzajúci cestujú a kam smerujú.

Odpovede bolo potrebné vyčistiť, aby sa opravili rôzne pravopisné chyby, pravopisné chyby a viacnásobné umiestnenia v jednom poli. Toto čistenie a nasledujúci krok geokódovania boli implementované v Pythone. Potom boli informácie o toku agregované, aby sa spočítal počet nominácií každého spojenia medzi rôznymi miestami. Nakoniec boli tieto spojenia (hrany, ktoré obsahujú počiatočné ID, cieľové ID a počet nominácií) uložené v textovom súbore. Okrem toho boli umiestnenia uložené v druhom textovom súbore obsahujúcom ID, názov umiestnenia a súradnice.

Prečo boli tieto údaje zhromaždené?

Okrem cestovného dopytu sa prieskum spoločnosti Hans-Jörg & # 8217s pýta účastníkov aj na ich spotrebu kávy počas jazdy vlakom. Tu a # 8217s, ako rozpráva príbeh za dátami:

Ako takmer každodenný cestujúci si rád užívam pri jazde vlakom horúcu kávu. Čo ma však už dlho trápi, je skutočnosť, že káva alebo horúce nápoje sa všeobecne takmer vždy podávajú v jednorazovej šálke „na jedno použitie a potom vyhodenie“. Nakoniec som si teda kúpil jeden z týchto väčšinou škaredých a priestorovo náročných opakovane použiteľných pohárov. Zdá sa, že ani jeden zo systémov ma ako zákazníka neuspokojuje: papierový kelímok produkuje veľa odpadu, aj keď je to pohodlné, pretože ho nosím iba vtedy, keď to potrebujem. S opakovane použiteľným pohárikom ho nosím celý deň, aj keď je väčšinou prázdny a je nemotorný a zaberá obmedzený priestor v taške.

Hľadal som teda systém, ktorý by sa zbavil nevýhod, respektíve by poskytol výhody oboch prístupov, a prišiel som s týmto nápadom: Inštalácia systému, ktorý poskytuje opakovane použiteľný pohár, ktorý mám pri sebe, len keď potrebujem to.

Za účelom vyhodnotenia potenciálu takého systému - ktorý by znamenal nielen podstatnú zmenu hardvérových pohárov, ale predstavil by aj nejaké softvérové ​​riešenie s pohodlím získania potrebnej zálohy, ktorú platím ja ako zákazník, a nejaký softvér -roztok v zadnej časti, ktorý sa zaoberá všetkým čistením, distribúciou do rôznych kaviarní a riadením vyváženého skladu na staniciach - vykonal som prieskum

Ďalším krokom bola geografická vizualizácia údajov o toku, a tu vstupuje do hry QGIS.


Vývojová mapa

Údaje z prieskumu, ako sú tie, ktoré sú opísané vyššie, sú bežným vstupom pre vývojové mapy. Zvyčajne existuje bodová vrstva (tu: & # 8220nodes & # 8221), ktorá poskytuje geografické informácie, a priestorová vrstva (tu: & # 8220edges & # 8221), ktorá obsahuje informácie o sile alebo váhe toku medzi dvoma konkrétnymi uzly:

Prvým krokom je preto vytvorenie prvkov prietokovej čiary z vrstiev uzlov a hrán. Aby sme dosiahli náš cieľ, musíme spojiť obe vrstvy. Znie to ako práca pre SQL!

Konkrétnejšie ide o prácu pre virtuálne vrstvy: Vrstva | Pridať vrstvu | Pridať / upraviť virtuálnu vrstvu

Tento dopyt SQL spája geografické informácie z tabuľky uzlov s váhami toku v tabuľke okrajov na základe ID uzlov. V poslednom riadku je kontrola, či by sa ID začiatočného a koncového uzla malo líšiť, aby sa zabránilo riadkom s nulovou dĺžkou.

Štýlovaním výsledných čiar toku pomocou šírky čiary riadenej údajmi a pridaním niektorých funkcií miešania je možné vytvoriť niekoľko polovičných slušných máp:

Určite však môžeme urobiť lepšie. Poďme vrhnúť niekoľko zakrivených šípov!

Typ vrstvy so symbolom šípky automaticky vytvára zakrivené šípky, ak má prvok pod čiarou tri uzly, ktoré nie sú zarovnané na priamke.

Preto, aby sa naše priame čiary zmenili na zakrivené šípky, je potrebné pridať k prvku priamky tretí bod, ktorý musí mať posun. To sa dá dosiahnuť pomocou generátora geometrie a funkcie offset_curve ():

Aby sme dosiahli efekt popísaný v šípkach New style: flow map, rozšírime generátor geometrie tak, aby orezával čiary na začiatku a na konci:

Použitím veľkostí šípok a hláv šípov na základe dát môžeme transformovať obyčajnú mapu toku vyššie na oveľa príťažlivejšiu mapu:

Dve rôzne farby šípok sú ďalším spôsobom, ako zdôrazniť smer prúdenia. V tomto prípade oranžové šípky označujú prietoky na západ, zatiaľ čo modré smerujú na východ.


Údaje o pohybe v GIS extra: kód na zovšeobecnenie trajektórie a vzorové údaje

Dnešný príspevok # 8217s nadväzuje na údaje o pohybe v GIS # 3: vizualizácia masívnych súborov údajov o trajektórii. V tomto príspevku som zhrnul koncept zovšeobecnenia trajektórie. Teraz som publikoval skripty a vzorové údaje vo svojom úložisku nástrojov QGIS-Processing-tools na Githube.

Ak chcete pridať skripty na zovšeobecnenie trajektórie do svojej sady nástrojov Spracovanie, môžete použiť nástroj Pridať skripty zo súborov:

Stojí za zmienku, že funkcia Pridať skripty zo súborov nedokáže správne importovať potenciálne súbory pomoci pre skripty, ale to tentokrát nie je problém, pretože som sa ešte nedostal k tomu, aby som skutočne písal súbory pomoci.

Skripty sa používajú v nasledujúcom poradí:

  1. Extrahujte charakteristické body dráhy
  2. Zoskupte body vo vesmíre
  3. Vypočítajte toky medzi bunkami z dráh

Vzorový projekt obsahuje vstupné údaje a výstupné vrstvy jednotlivých nástrojov. Jediným požadovaným vstupom je vrstva trajektórií, kde trajektórie musia byť funkcie LINESTRINGM (všimnite si M!):

Vzorka dráhy založená na údajoch poskytnutých projektom GeoLife

V časti Extrahovať charakteristické body trajektórie sú parametre vzdialenosti zadané v metroch, trvanie zastavenia v sekundách a uhly v stupňoch. Charakteristické body obsahujú počiatočné a koncové polohy, ako aj polohy odbočiek a zastávok:

Charakteristické body sa potom zoskupia. V tomto nástroji musí byť vzdialenosť zadaná v jednotkách vrstvy, čo sú stupne v prípade vzorových údajov.

Na záver môžeme vypočítať toky medzi bunkami definovanými týmito klastrami:

Prietokové čiary upravené podľa sily toku a bunkové centrá podľa počtu

Ak použijete tieto nástroje na svoje vlastné údaje, budem šťastný, takže sa pozrite, čo vymyslíte!

Tento príspevok je súčasťou série. Prečítajte si viac o údajoch o pohybe v GIS.

Páči sa ti to:


Údaje o pohybe v GIS # 10: otvorené nástroje pre stopy AIS z MarineCadastre.gov

MarineCadastre.gov je skvelým zdrojom pre údaje AIS pozdĺž pobrežia USA. Ich dátové formáty a nástroje sú však menej otvorené. Našťastie GDAL & # 8211 a teda QGIS & # 8211 môžu čítať geodatabázy súborov ESRI (.gdb).

MarineCadastre.gov taktiež ponúka skript Track Builder, ktorý vytvára čiary z vysielaných bodov. (Môže sa tiež pripojiť k ďalším informáciám z plavidiel a plavieb.) Krok vytvorenia línie by sme mohli reprodukovať pomocou nástrojov, ako je Processing & # 8217s Point to path, ale tento príspevok ukáže, ako namiesto toho vytvoriť trajektórie PostGIS.

Najprv musíme importovať body do PostGISu pomocou nástroja DB Manager alebo nástroja Processing & # 8217s Import do PostGIS:

Potom môžeme vytvoriť trajektórie. Rozhodol som sa vytvoriť materializované zobrazenie:

Prvá časť dotazu vytvára dočasnú tabuľku s názvom ptm (skratka pre PointM). V tomto kroku sa ku každému bodu pridajú informácie o časovej pečiatke. Druhá časť dotazu potom agreguje tieto PointM do trajektórií typu LineStringM.

Časy začiatku a konca trajektórie (min_t a max_t) sú voliteľné, môžu však pomôcť urýchliť budúce dotazy.

Jednou z výhod vytvárania trajektórnych čiar je, že sa vykresľujú mnohokrát rýchlejšie ako pôvodné body.

Samozrejme, skončíme pri niektorých artefaktoch na hranici rozsahu množiny údajov. (Súbory sú rozdelené podľa zón UTM.) Trajektorie spájajú poslednú známu polohu pred tým, ako plavidlo opustilo pozorovanú oblasť, s polohou návratu. Z toho vzniknú napríklad zvislé čiary, ktoré môžete vidieť v ľavom dolnom rohu obrazovky vyššie.

S pripravenými trajektóriami môžeme pokračovať a začať skúmať množinu údajov. Napríklad môžeme vizualizovať rýchlosť trajektórie a / alebo vytvárať animácie:

Fialové segmenty trajektórie sú pomalé, zatiaľ čo zelené segmenty sú rýchlejšie

Môžeme tiež vykonať analýzu trajektórie, napríklad zovšeobecnenie trajektórie:

Toto je prvý dôkaz koncepcie. Bolo by skvelé mať skript, ktorý automaticky načíta datové sady pre zadaný časový rámec a zoznam zón UTM a načíta ich do PostGIS na ďalšie spracovanie. Okrem toho by bolo skvelé tiež využiť informácie z tabuliek plavidiel a plavieb, čím by sa trajektórie rozdelili na jednotlivé plavby.

Tento príspevok je súčasťou série. Prečítajte si viac o údajoch o pohybe v GIS.

Páči sa ti to:


Nakoniec sa samozrejme pozrime na priestorové filtre, napríklad trajektórie, ktoré začínajú v určitej oblasti:

Tento bodový dopyt trvá 6,0 s, kým dotaz s kratšou trajektóriou končí za 488 ms:

Pre všeobecnejšie & # 8220táto trajektória pretína inú geometriu & # 8221, možno body tiež agregovať do riadkovacieho reťazca za behu, čo však trvá 21,9 s:

V júli predstavím viac práce na trajektóriách PostGIS na GI_Forum v Salzburgu. V rámci prednášky sa pozriem tiež na vlastný dátový typ trajektórie PG. Celý článok s otvoreným prístupom:

Moju vidlicu projektu PG-Trajectory & # 8211 vrátane všetkých potrebných opráv & # 8211 nájdete na Bitbucket.

Tento príspevok je súčasťou série. Prečítajte si viac o údajoch o pohybe v GIS.

Páči sa ti to:


Drive-time Isochrones z jedného Shapefile pomocou QGIS, PostGIS a Pgrouting

Toto je príspevok od Chrisa Kohlera @ Chriskohler8.

Úvod:

Táto príručka poskytuje podrobné pokyny na výrobu izochrónov počas jazdy pomocou jedného vektorového tvarového súboru. Tu opísaná metóda spočíva v budovaní smerovacej siete pomocou jediného vektorového obrazcového súboru vašich údajov o cestách vo virtuálnom boxe. Ďalej je sieť vybudovaná vytvorením počiatočných a koncových uzlov (zdrojové a cieľové uzly) na každom segmente cesty. Ako našu databázu použijeme Postgresql s rozšíreniami PostGIS a Pgrouting. Považujte tento typ smerovania za spravodlivý, pokiaľ ide o presnosť, pretože smerovacie algoritmy sú založené na umiestneniach uzlov a nie na konkrétnych adresách. Momentálne pracujem na vylepšenom pracovnom postupe, aby adresné body webu slúžili ako uzly na optimalizáciu výsledkov. Jednou z mnohých výhod tohto pracovného toku sú žiadne finančné náklady na výrobu (mimo zhromažďovania údajov o vašich cestách). V tejto príručke uvediem pokyny na vytvorenie a používanie vášho virtuálneho stroja.

Kroky: & # 8211 Získanie virtuálneho poľa (začať) & # 8211

Úvod 2. Spustite sťahovanie / inštaláciu OSGeo-Live 11 (https://live.osgeo.org/en/overview/overview.html).

Obrázky použité v tomto pracovnom postupe zobrazia 10.5, aj keď verziu 11 je možné použiť podobne. Uistite sa, že ste si stiahli verziu: osgeo-live-11-amd64.iso. Ak ho nenájdete, tu je priamy odkaz na stiahnutie (https://sourceforge.net/projects/osgeo-live/files/10.5/osgeo-live-10.5-amd64.iso/download)
Úvod 3. Pripravený na vytváranie virtuálnych strojov: Stiahnutú sadu OSGeo-Live 11 použijeme s virtuálnym strojom, ktorý vytvoríme, aby sme zahájili náš pracovný tok. Kroky na vytvorenie virtuálneho počítača sú uvedené nižšie. Tu sú tiež kroky z predchádzajúcej dielne s ďalšími podrobnosťami o nastavení vášho virtuálneho stroja s programom osgeo live (http://workshop.pgrouting.org/2.2.10/en/chapters/installation.html).

1. Vytvorte Virutal Machine: V tomto kroku začneme vytvárať virtuálny stroj obsahujúci našu databázu.

Otvorte Oracle VM VirtualBox Manager a vyberte „Nový" nachádza sa v ľavej hornej časti okna.

Potom vyplňte meno, operačný systém, pamäť atď. A vytvorte svoj prvý VM.

2. Pridajte radič IDE: Účelom tohto kroku je vytvoriť zástupný symbol pre sadu osgeo 11, ktorá sa má implementovať. V hlavnom okne virtuálneho poľa kliknite pravým tlačidlom myši na novo vytvorený virtuálny počítač a otvorte nastavenia.

V okne nastavení na ľavej strane vyberte kartu ukladacieho priestoru.

Nájsť " pridáva nový radič úložiska “ tlačidlo umiestnené v spodnej časti karty. Buďte opatrní pri označených ostatných tlačidlách „Pridáva novú prílohu úložiska“! Vyberte „ pridáva nový radič úložiska “ a zobrazí sa rozbaľovacia ponuka. V hornej časti rozbaľovacej ponuky vyberte možnosťPridať IDE radič ”.

Uvidíte novú položku, ktorá sa objaví v strede okna pod „Skladovací strom“.

3. Pridajte optickú jednotku: Sada osgeo 11 bude do virtuálneho stroja implementovaná prostredníctvom optickej jednotky. Zvýraznite nové IDE radiča, ktoré ste vytvorili, a vyberte „Pridať optickú jednotku“.

Zobrazí sa nové okno a vyberie sa „Vyberte Disk ”.

Nájdite stiahnutý súbor “osgeo-live 11 amd64.iso”A kliknite na otvoriť. V strede okna pod novým radičom by sa mal zobraziť nový objekt & # 8220osgeo-live-11.0-amd64.iso & # 8221.

Nakoniec je váš virtuálny stroj pripravený na použitie.
Spustite nový Virtual Box, počkajte a postupujte podľa pokynov na obrazovke, aby ste mohli začať používať svoj virtuálny počítač.

& # 8211Získanie virtuálnej schránky (koniec) & # 8212

4. Vytvorenie smerovacej databázy a oboch rozšírení (postgis, pgrouting): Databáza, ktorú vytvoríme, a obe rozšírenia, ktoré pridáme, budú poskytovať funkcie schopné produkovať izochróny.

Začnite tým, že otvoríte nástroj príkazového riadku (podržte ovládací prvok + ľavá alt + T) potom sa prihláste do postgresql napísaním „psql -U užívateľ”Do príkazového riadku a potom stlačte kláves Enter. Pre účely jasnej inštrukcie budem v tejto príručke odkazovať na názov databázy ako „smerovanie”, Môžete si zvoliť vlastný názov databázy. Na vytvorenie databázy zadajte príkaz na nasledujúcom obrázku:

Môžeš použiť " c smerovanie”Na pripojenie k databáze po vytvorení.

Ďalším krokom po vytvorení a pripojení k vašej novej databáze je vytvorenie oboch rozšírení. Je pre mňa jednoduchšie písať dvoma vtákmi jedným kameňom “psql -U smerovanie používateľov”Toto vás súčasne prihlási do postgresql a vašej smerovacej databázy.

Po prihlásení do databázy pridajte obidve prípony pomocou nasledujúcich príkazov

5. Načítajte shapefile do databázy: V tomto ďalšom kroku musí byť obrazec vašich údajov o cestách umiestnený do vášho virtuálneho stroja a ďalej do vašej databázy.

Moja metóda spočíva v použití e-mailu na odoslanie súboru tvarov ciest, následnom stiahnutí a kopírovaní z webového prehľadávača mojich virtuálnych strojov. Na pracovnej ploche vášho virtuálneho počítača otvorte priečinok s názvom „Databázy“ a vyberte aplikáciu „Shape2pgsql“.

Postupujte podľa používateľského rozhrania shp2pgsql a pripojte sa k svojej smerovacej databáze, ktorú ste vytvorili v kroku 4.

Ďalej vyberte "Pridať súbor„A nájdite svoje formovacie súbory ciest (v tejto príručke budeme nazývať náš formovacie súbory“roads_table”), Ktorý chcete použiť pre svoje izochróny, a kliknite na Otvoriť.

Nakoniec kliknite na „Importovať “ aby ste umiestnili svoj tvarový súbor do svojej smerovacej databázy.

6. Pridajte cieľové stĺpce zdroja a zosilňovača: Účelom tohto kroku je vytvoriť stĺpce, ktoré budú slúžiť ako zástupné symboly pre dáta našich uzlov, ktoré vytvoríme neskôr.

Existuje niekoľko spôsobov, ako pridať tieto stĺpce do tabuľky roads_table. Najdôležitejšou časťou tohto kroku je, ktorú tabuľku sa rozhodnete upraviť, názvy stĺpcov, ktoré vytvoríte, a formát stĺpcov. Nájdite si čas a ubezpečte sa, že cieľové stĺpce zdroja a zosilňovača sú celočíselné. Ďalej sú uvedené príkazy použité vo vašom príkazovom riadku pre tieto funkcie.

7. Vytvorte topológiu: Ďalej pomocou funkcie pripojíme uzol na každý koniec každého segmentu cesty v tabuľke roads_table. Funkcia v tomto kroku vytvorí tieto uzly. Tieto novo vytvorené uzly sa uložia do zdrojových a cieľových stĺpcov, ktoré sme vytvorili predtým v kroku 6.

Okrem vytvárania uzlov táto funkcia vytvorí aj novú tabuľku, ktorá bude obsahovať všetky tieto uzly. Prípona „_Vertices_pgr“ sa pridá k názvu vášho obrazového súboru na vytvorenie tejto novej tabuľky. Napríklad pomocou názvu súboru s tvarom nášho sprievodcu & # 8220roads_table & # 8221, bude tabuľka uzlov pomenovaná zodpovedajúcim spôsobom: roads_table_vertices_pgr . Nebudeme však používať novú tabuľku vytvorenú z tejto funkcie (roads_table_vertices_pgr). Ďalej je uvedená funkcia a druhá zjednodušená verzia, ktorá sa má použiť v príkazovom riadku na vyplnenie našich zdrojových a cieľových stĺpcov, inými slovami vytvorenie našej sieťovej topológie. Všimnite si vstupný formát, & # 8220geom & # 8221 stĺpec v mojom prípade bol volaný & # 8220the_geom & # 8221 v mojom tvare:

Nižšie je uvedená príkladná (zjednodušená) funkcia pre môj tvarový súbor ciest:

8. Vytvorte druhú tabuľku uzlov: Bude vytvorená druhá tabuľka uzlov pre neskoršie použitie. Táto druhá tabuľka uzlov bude obsahovať údaje o uzloch generované funkciou pgr_createtopology a bude mať názov „uzol “. Ďalej je uvedená príkazová funkcia pre tento proces. Vyplňte príslušné zdrojové a cieľové polia spôsobom uvedeným v príkaze nižšie, ako aj názov vášho obrazca.

Na začiatok vyhľadajte priečinok na ploche Virtual Machines s názvom „Databázy”A otvorte program“pgAdmin lll”Umiestnené v.

Pripojte sa k svojej smerovacej databáze v okne pgAdmin. Potom zvýraznite svoju smerovaciu databázu a vyhľadajte & # 8220SQL & # 8221 nástroj v hornej časti okna pgAdmin. Nástroj pripomína malú lupu.

Do okna SQL programu pgAdmin zadáme nasledujúcu funkciu. Ďalšie informácie nájdete na tomto odkaze: (https://anitagraser.com/2011/02/07/a-beginners-guide-to-pgrouting/)

  1. Vytvorte smerovateľnú sieť: Po vytvorení druhej tabuľky uzlov z kroku 8 skombinujeme túto tabuľku uzlov (uzol) s naším súborom tvarov (roads_table) do jednej, novej, tabuľky (sieť), ktorá sa použije ako smerovacia sieť. Táto tabuľka sa bude volať & # 8220sieť & # 8221 a bude schopný spracovať smerovacie dotazy. Zadajte tento príkaz a vykonajte ho v nástroji SQL pgAdmin, ako sme to urobili v kroku 8. Tu je odkaz na ďalšie informácie :( https://anitagraser.com/2011/02/07/a-beginners-guide-to-pgrouting/ )

10. Vytvorte „prikyvovaný“ pohľad na sieť: Toto nové zobrazenie sa neskôr použije na výpočet vizuálnych izochrónov v ďalších krokoch. Zadajte tento príkaz a vykonajte v nástroji SQL pgAdmin.

11.​ Pridať stĺpec pre rýchlosť:Tento krok sa môže, ale nemusí uplatniť, ak váš pôvodný súbor tvarov obsahoval pole hodnôt pre rýchlosti cesty.

V skutočnosti bude sieť ciest obvykle obsahovať viac rýchlostných limitov. Zvolený tvarový súbor môže mať pole rýchlosti, inak diskriminácia nasledujúcich krokov neumožní s rešpektom použiť rôzne rýchlosti na vašu smerovaciu sieť.

Ak vo vašom tvarovom súbore existujú hodnoty rýchlosti, implementujeme ich do nového poľa & 8220cestovný čas& # 8220, ktorá zobrazí rýchlosť jazdy pre každý segment cesty v našej sieti na základe ich geometrie. Najskôr budeme musieť vytvoriť stĺpec na ukladanie jednotlivých cestovných rýchlostí. Názov nášho stĺpca bude „cestovný čas”Vo formáte: dvojnásobná presnosťZadajte tento príkaz a vykonajte ho v nástroji príkazového riadku, ako je uvedené nižšie.

Ďalej vyplníme nový stĺpec „cestovný čas”Výpočtom cestovných rýchlostí pomocou rovnice. Táto rovnica vezme geometriu každého segmentu cesty (tvar_leng) a vydelte sa cestovnou rýchlosťou (buď km / h alebo km / h). Vzorový príkaz, ktorý používam nižšie, využíva ako rýchlosť mph pri našej geometrii(tvar_leng) jednotky pre moju roads_table sú v stopách. Ak používate mph alebo kph, zadajte tento príkaz a vykonajte v nástroji SQL pgAdmin. Ďalej uvádzame ďalšie podrobnosti o premennej & # 8220X & # 8221.

Ako nájsť X, tu je príklad: Ako rýchlosť sa používa príklad 30 mph. Aby sme našli X, prevádzame 30 míľ na stopy, vieme 5280 ft = 1 míľa, takže vynásobíme 30 na 5280 a to nám dáva 158400 ft. Náš kurz bol prepočítaný z 30 míľ za hodinu na 158400 stôp za hodinu. Pre rýchlosť 30 mph naša rovnica pre pole & # 8220doba cesty a # 8221 sa rovná & # 8220shape_leng / 158400 * 60 a # 8243. Na rozlíšenie tohto výstupu výpočtov vložíme ďalšie podrobnosti, napríklad & # 8220kde rýchlosť = 30 & # 8221. To, čo robí tento ďalší detail, je použitie nášho vypočítaného výstupu na funkcie s & # 822030Hodnota & # 8221 v našom & # 8220rýchlosť& # 8221 pole. Poznámka: váš & # 8220rýchlosť& # 8221 pole môže byť pomenované inak.

Tento krok opakujte pre každú hodnotu rýchlosti v príkladoch tvarového súboru:

Zadný koniec je hotový. Dobrá práca!

Naším ďalším krokom bude vizualizácia našich údajov v QGIS. Otvorte a pripojte QGIS k svojej smerovacej databáze kliknutím pravým tlačidlom myši „PostGIS”Na paneli prehliadača v hlavnom okne QGIS. Potvrďte začiarkavacie políčko „Uveďte tiež tabuľky bez geometrie”Je začiarknuté, aby ste videli interiér databázy jasnejšie. Vyplňte meno alebo smerovaciu databázu a kliknite na „Ok”.

Ak sa to urobí správne, z QGIS budete mať prístup k tabuľkám a zobrazeniam vytvoreným vo vašej smerovacej databáze. Nebojte sa vizualizovať svoju sieť presunutím sieťovej tabuľky do panela vrstiev QGIS. Odtiaľto môžete pomocou nástroja na identifikáciu vybrať každý segment cesty a zobraziť zdrojové a cieľové uzly v danom segmente cesty. Uzol, ktorý si vyberiete, sa použije v ďalšom kroku na vytvorenie zobrazení doby jazdy.

12.Vytvoriť zobrazenia: V tomto kroku vytvoríme zobrazenia z funkcie určenej na určenie nákladov na čas cesty. Transformácia týchto pohľadov pomocou nástrojov vizualizuje náklady na čas cesty ako izochróny.

Nasledujúci príkaz bude, ako začnete vyhľadávať vo svojej databáze a vytvárať izochróny za jazdy. Začnite v QGIS pretiahnutím svojej sieťovej tabuľky do obsahu. Vizuál zobrazí vašu sieť ako vektor (čiary). Jednoducho vyberte segment cesty, ktorý je najbližšie k vášmu bodu záujmu, okolo ktorého chcete vytvoriť svoj izochrón. Potom pomocou nástroja na identifikáciu identifikujte segment cesty a vyhľadajte zdrojové a cieľové polia. Zrkadlovka na čiernom pozadí

Do nižšie uvedeného príkazu umiestnite hodnotu zdrojového alebo cieľového poľa kde vidíte HODNOTU, veľkými písmenami.

Toto vám teraz bude slúžiť ako funkcia zachytávania izochrónov pre tento pracovný tok. Neváhajte a opakovane použite tento príkaz na vytváranie nových izochrónov nahradením zdrojovej hodnoty. Zadajte tento príkaz a vykonajte ho v nástroji SQL pgAdmin.

* V DOBE TOHTO PRACOVNÉHO TOKU som POSKYTOL PRÍKLAD POUŽITIA ZDROJOVEJ HODNOTY „2022“

13.Vizualizácia Isochrone: Aplikácia nástrojov na zobrazenie nám umožní upraviť vizuálny aspekt na vhodnejšie prekrytie izochrónom.

Po vytvorení zobrazenia sa pomocou & # 8220 vytvorí nová položka vo vašej smerovacej databázeview_name& # 8221, ktorú ste si vybrali. Presuňte túto položku do svojho QGIS LayersPanel. Uvidíte veľa malých bodiek, ktoré reprezentujú uzly.

Na nasledujúcom obrázku som pomenoval svoj pohľad # 8220vziať1“.

Každý uzol, ktorý vidíte, obsahuje hodnotu doby jazdy, & # 8220cost & # 8221, čo predstavuje čas potrebný na cestu z uzla, ktorý ste zadali vo funkcii v kroku 12.

Začnite inštaláciou doplnku QGIS & # 8220 Interpolácia & # 8221 otvorením Správcu doplnkov v rozhraní QGIS.

Ďalej v hornej časti okna QGIS vyberte „Rastrový“ a zobrazí sa rozbaľovacia ponuka, vyberte „Interpolácia“.

Zobrazí sa nové okno s výzvou na zadanie.

Vyberte svoju „Zobraziť“Ako vektorovú vrstvu vyberte & # 8221náklady & # 8221 ako atribút interpolácie a potom kliknite na „Pridať“.

V dolnej časti okna sa zobrazí nová vektorová vrstva. Dajte pozor na typ Body a # 8220. Pre výstup ponechajte v druhej polovici okna metódu interpolácie ako & # 8220TIN & # 8221, upravte umiestnenie a názov výstupného súboru. Začiarknite políčko „Pridať výsledok k projektu“.

Poznámka: Zníženie veľkosti buniek X a Y zvýši rozlíšenie, ale za cenu výkonu.

Kliknite „OK“ v pravom dolnom rohu okna.

V QGIS sa objaví čiernobiely raster, taktiež v paneli vrstiev bola vytvorená nová položka.

Trvajte nejaký čas, kým si vizualizujete raster vyfarbením a úpravou hodnôt v symbolike, kým vám nevyhovuje vzhľad.

14. Vytvorte obrysy nášho izochrónu: Obrysy sa dajú vypočítať aj z izochrónu.

Nájdite v hornej časti okna QGIS okno „Raster “ rozbaľovaciu ponuku a vyberte Extrakcia → Kontúra.

Vyplňte príslušný interval medzi vrstevnicami, nechajte však začiarkavacie políčko „Názov atribútu“ nezačiarknuté. Kliknite „OK“.

15. Zips a zdieľanie:Nájdite miesto, kde ste uložili svoje TIN a kontúry, komprimujte ich do priečinka zip tak, že ich obe zvýrazníte a kliknete pravým tlačidlom myši „Stlačiť“. Komprimovaný priečinok pošlite e-mailom sami sebe na export z virtuálneho počítača.


Pozri si video: Postgresql: Create Postgis database and import shapefiles.