Açık kaynak kodlama / ağ analizi için pgRouting alternatifleri mi arıyorsunuz?


35

PgRouting araçlarına alternatiflerin olup olmadığını merak ediyordum .

Biraz düşününce, bence tek alternatif, analizi yapmak için R veya RPY kullanmak.

Temel olarak, PostGIS dışı veritabanlarına dayalı yönlendirme sorunlarını çözmeye çalışıyorum. Verilerimin çoğu aslında farklı bir biçimde saklandığı için; Ancak, dönüştürmek zor değil. Aptal aptal beynime pgRouting uygulamak zordur buluyorum. Belki de kolayca ayarlayabildiğim veritabanı dışı bir çözüm benim için ideal olacaktır.

Yanıtlar:


21

[Düzenleme: pypi'den erişilebilen nx_spatial'ın yerine geçmiştir (easy_install nx_spatial). Şekil dosyalarını içe aktarma artık ağx 1.4'te standarttır ]

ESRI'nin Python GP API'sindeki geometrik ağ araçlarının olmamasından dolayı biraz hayal kırıklığına uğradım, bu yüzden Shapefiles ve Feature Classes'ı ağx yön grafiğine (DiGraphs) yükleyen bir şey yazdım .

Halen devam etmekte olan bir çalışmadır, ancak sorununuza yardımcı olabilecek bir şey için iyi bir başlangıç ​​olabilir.

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

Örnekler:

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]

Ağ, networkx.DiGraph'tan devralır, bu nedenle tüm bu işlevler kullanılabilir.



5

Ağ analizi sorunlarıyla uğraşmak için tasarlanmış bir CBS paketi olan Flowmap var .

Oldukça basit bir kullanım durumunuz varsa, QGIS tabanlı Quantum Navigator hile yapabilir.

GRASS ayrıca ağ analizini de desteklemektedir , ancak ortamın içinde ayarlanan şeyleri sürtünmeye değmeyebilir.


4

Programlı bir pythonic çözüm arıyorsanız, networkx'e bir göz atın


.shpAğa ağa gitmek için herhangi bir kütüphane var mı? Kendimi Python'da kurabilirdim, ama tekerleği yeniden icat etmemeliydim ...
fmark

4
Shapefiles, verileri topolojik ağlar yerine basit özellikler olarak sakladığı için tam olarak 1: 1 eşleşmiyor. Bu nedenle, önce kaynak veri kümenizle ilgili bazı şeyleri bilmeniz / varsaymanız gerekir - öncelikle tüm kavşakların bir bağlantı için terminal düğümleri olduğunu. Basit özellikleri networkx grafiğine dönüştürmek için geodjango kullanmanın bir örneği: code.google.com/p/marinemap/source/browse/lingcod/spacing/…
perrygeo 16




2

Son yıllarda biraz araştırma yaptık ama pgRouting'den hala memnunuz ve bunun GIS-Routing ihtiyaçlarımız için en iyi çözüm olduğunu düşünüyoruz. Ne yazık ki bildiğim kadarıyla pek bir şey yok (binlerce Euro / Dolar ödemek zorunda kalmadan). Çalışmak için mükemmel bir ağa sahip olan ancak ucuz olmayan Navtech -Data ile çalışıyoruz. Ayrıca zaman zaman iyi çalışan OSM ile de çalıştık ... ama her zaman bazı problemler çıkardık ve bu yüzden de asla üretime girmedik.

Ayrıca yukarıda belirtilen açık kaynaklı GraphHopper projesine (birkaç hafta önce) rastladık ve bunun çok iyi bir performansa ve olanaklara sahip olduğunu düşünüyoruz. Bildiğim kadarıyla - projeleri içinde çalışan OSM Verileri de var.



1

Birçok rotalama problemi, en kısa yolu belirlemek için Dijkstra algoritmasını kullanır. Kodlamak oldukça kolay: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

Ayrıca, Guido van Rossum, Python'daki grafiklerle ilgili erken bir makale yazdı. Kısa parçası, ilkel rota veri yapıları ve kodlaması için bir yaklaşım içeriyor: http://www.python.org/doc/essays/graphs.html

Dışarıda birçok yönlendirme paketi var. Özellikle coğrafi amaçlar için, pgRouting’in yanı sıra, graphserver (http://bmander.github.com/graphserver/) ve ESRI ArcGIS Network Analyst’i akla geliyor. Sosyal ağ analizi topluluğu, http://www.insna.org/software/index.html ve http://www.insna.org/software/software_old.html adresinde bir grafik analiz yazılımı listesine sahiptir . Bu paketlerin çoğu açık kaynak kodlu ve coğrafi bir bağlamla ilgili. Çok karmaşık, sağlam veya karmaşık hesaplamalar için, CPLEX ve Lindo Lingo gibi doğrusal programlama paketleri araştırılmaya değer olabilir.


Sorun, bu çözümlerin çoğunun bir düğüm ve bağlantı sistemine ihtiyaç
duymasıdır

1
Ağ analisti yaklaşık 2,500 dolar ve şimdi böyle bir satın alma yapmakla ilgilenmiyor.
Pitonik

2
Dijjkstra çok temel grafikler içindir. Gerçek hayattaki problemler için genellikle çok ağır ve yavaş bir algoritmadır. Ayrıca, açık kaynaklı olmadığı için ESRI yazılımının geliştirilmesi güçtür ve diğer araçlar lehine yavaşça geride bırakılır.
María Arias de Reyna Domínguez

@dassouki tüm GIS verileri esas olarak düğümler ve bağlantılar ve osm2pgrouting ve genel olarak diğer pgRouting komut dosyaları gibi araçlar, mevcut GIS / uzamsal verileri pgRouting'de kullanılan gerekli düğüm ve bağlantılara ve kenarlara dönüştürür ...
DPSSpatial

1

Alpha sürümünde ancak umut verici görünüyor:

GeoDaNet (Alpha) - Ağlarda mekansal nokta deseni analizi ( GeoDa merkezinde tasarlanan PySAL Ptyhon kütüphanesine dayanarak ).

( Slaytlar , el kitabı , indirme .)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.