Mencari alternatif pgRouting untuk perutean sumber terbuka / analisis jaringan?


35

Saya bertanya-tanya apakah ada alternatif untuk alat pgRouting .

Memikirkannya sebentar, saya pikir satu-satunya alternatif adalah menggunakan R atau RPY untuk melakukan analisis.

Pada dasarnya saya mencoba menyelesaikan masalah routing berdasarkan pada database nonPostGIS. Karena sebagian besar data saya sebenarnya disimpan dalam format yang berbeda; Namun, ini tidak sulit untuk dikonversi. Saya menemukan bahwa pRRouting ke otak bodoh saya sulit untuk diterapkan. Jadi mungkin solusi non-database yang dapat saya atur dengan mudah akan ideal untuk saya

Jawaban:


21

[Sunting: ini telah digantikan oleh nx_spatial yang tersedia dari pypi (easy_install nx_spatial). Mengimpor shapefile sekarang menjadi standar di networkx 1.4 ]

Aku sudah semacam kecewa dengan kurangnya alat jaringan geometris dengan Python GP API ESRI, jadi saya menulis sesuatu yang beban Shapefiles dan Fitur Kelas ke networkx grafik directional (digraf).

Ini masih dalam proses, tetapi mungkin merupakan titik awal yang baik untuk sesuatu yang dapat membantu masalah Anda.

http://bitbucket.org/gallipoli/utilitynetwork/

Sampel:

from utilitynetwork import Network

net = Network()

#load single file, method reqs OGR
net.loadshp("/shapefiles/test.shp")

#load directory full of shapefiles
net.loadshp("/shapefiles")

#load a feature class, req ESRI gp object, should work with shps as well
import arcgisscripting
gp = arcgisscripting.create(9.3)
net.loadfc("C:\somedb.gdb\featureclass", gp)

#Accessing node/edge data is done by the key value (the geometry as a tuple).
#access node data at x=4, y=2
nodekey = (4, 2)
net.node[nodekey]

Jaringan mewarisi dari networkx.DiGraph, sehingga semua fungsi itu tersedia.



5

Ada Flowmap , paket GIS khusus yang dirancang untuk menangani masalah analisis jaringan.

Jika Anda memiliki kasus penggunaan yang cukup sederhana, Quantum Navigator berbasis QGIS mungkin dapat melakukan trik.

GRASS juga mendukung analisis jaringan , meskipun mungkin tidak sepadan dengan gesekan dalam mengatur berbagai hal di dalam lingkungan.


4

Jika Anda mencari solusi pythonic yang terprogram, lihatlah networkx


.shpAdakah perpustakaan untuk berpindah dari ke networkx? Saya bisa membuat sendiri dengan Python, tetapi saya akan dengan cepat menemukan kembali roda ...
fmark

4
Ini bukan pertandingan 1: 1 karena shapefile menyimpan data sebagai fitur sederhana, bukan jaringan topologi. Jadi, Anda perlu mengetahui / mengasumsikan beberapa hal tentang dataset sumber Anda terlebih dahulu - terutama bahwa semua persimpangan adalah simpul terminal untuk linestring. Berikut ini adalah contoh penggunaan geodjango untuk mengubah fitur sederhana menjadi grafik networkx: code.google.com/p/marinemap/source/browse/lingcod/spacing/…
perrygeo

3

Anda dapat melihat proyek open source GraphHopper - perencana rute yang cepat dan fleksibel. Cobalah di sini . Catatan: Saya penulisnya


Saya menjamin GraphHopper karena sangat mudah diseting dan digunakan.
bugmenot123



2

Kami juga melakukan riset beberapa tahun terakhir, tetapi kami masih senang dengan pgRouting dan berpikir itu adalah solusi terbaik untuk kebutuhan GIS-Routing kami. Sayangnya tidak banyak yang saya ketahui (tanpa harus membayar ribuan Euro / Dolar). Kami bekerja dengan Navtech- Data, yang memiliki jaringan yang sempurna untuk bekerja tetapi tidak murah. Kami juga mencoba dari waktu ke waktu dengan OSM yang berfungsi dengan baik ... tetapi selalu membuat beberapa masalah dan karenanya tidak pernah membuatnya menjadi produksi.

Kami juga baru saja menemukan proyek GraphHopper open source yang disebutkan di atas (beberapa minggu yang lalu) dan berpikir, bahwa ia memiliki kinerja sangat baik dan kemungkinan. Sejauh yang saya tahu - mereka juga memiliki Data OSM berjalan dalam proyek mereka.



1

Banyak masalah routing yang menggunakan algoritma Dijkstra untuk menentukan jalur terpendek. Ini relatif mudah untuk kode: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

Juga, Guido van Rossum menulis esai awal tentang grafik dengan Python. Karya pendeknya mencakup pendekatan untuk struktur data rute primitif dan pengkodean: http://www.python.org/doc/essays/graphs.html

Ada banyak paket routing di luar sana. Untuk tujuan geografis tertentu, selain pgRouting, graphserver (http://bmander.github.com/graphserver/) dan Analis Jaringan ESRI ArcGIS muncul di pikiran. Komunitas analisis jaringan sosial memiliki daftar perangkat lunak analisis grafik di: http://www.insna.org/software/index.html dan http://www.insna.org/software/software_old.html . Banyak dari paket tersebut bersifat open source dan relevan dalam konteks geografis. Untuk perhitungan yang sangat canggih, kuat atau kompleks, paket pemrograman linier seperti CPLEX dan Lindo Lingo mungkin layak diselidiki.


masalahnya adalah bahwa sebagian besar solusi ini memerlukan sistem node dan tautan, dan data GIS biasanya tidak disimpan seperti itu
dassouki

1
Analis jaringan sekitar $ 2.500 dan tidak benar-benar tertarik melakukan pembelian seperti sekarang. Saya lebih suka memiliki solusi pythonic
dassouki

2
Dijjkstra adalah untuk grafis yang sangat mendasar. Untuk masalah kehidupan nyata, biasanya itu adalah algoritma yang sangat berat dan lambat. Juga, perangkat lunak ESRI, karena tidak bersumber terbuka, sulit untuk ditingkatkan dan perlahan-lahan tertinggal dalam mendukung alat lain.
María Arias de Reyna Domínguez

@dassouki semua data GIS pada dasarnya adalah simpul dan tautan, dan alat-alat seperti osm2pgrouting, dan skrip pgRouting lainnya secara umum, ubah GIS / data spasial yang ada menjadi simpul dan tautan dan tepi yang diperlukan yang digunakan dalam pgRouting ...
DPSSpatial

1

Dalam rilis Alpha tetapi terlihat menjanjikan:

GeoDaNet (Alpha) - Analisis pola titik spasial pada jaringan (berdasarkan pustaka PySAL Ptyhon, disimpulkan di pusat GeoDa).

( Slide , manual , unduh .)


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.