寻求pgRouting的替代方案以进行开源路由/网络分析?


35

我想知道pgRouting工具是否可以替代。

仔细考虑一下,我认为唯一的选择是使用R或RPY进行分析。

基本上,我正在尝试解决基于非PostGIS数据库的路由问题。由于我的大多数数据实际上都以不同的格式存储;但是,转换并不难。我发现很难实现对愚蠢的大脑的pgRouting。因此,也许我可以轻松调整的非数据库解决方案对我来说是理想的选择

Answers:


21

[编辑:已被pypi(easy_install nx_spatial)提供的nx_spatial取代。导入形状文件是现在的标准在networkx 1.4 ]

我对ESRI的Python GP API中缺少几何网络工具感到失望,因此我写了一些东西将Shapefile和Feature类加载到networkx方向图(DiGraphs)中。

这项工作仍在进行中,但是对于可以帮助您解决问题的事物来说,这可能是一个好的起点。

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

样品:

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]

网络是从networkx.DiGraph继承的,因此所有功能都可用。



5

有一个Flowmap,一个专门用于处理网络分析问题的利基GIS软件包。

如果您有一个非常简单的用例,则基于QGIS的Quantum Navigator可能会解决问题。

GRASS还支持网络分析,尽管可能不值得在环境中进行设置。


4

如果您正在寻找程序化的pythonic解决方案,请查看networkx


是否有任何要从.shpnetworkx 转到库?我可以用Python建立自己的系统,但我会想尽办法重新发明轮子……
fmark

4
由于shapefile将数据存储为简单功能而不是拓扑网络,因此它并非完全是1:1匹配。因此,您首先需要了解/假设一些有关源数据集的知识-主要是所有相交都是线串的终端节点。下面是一个使用GeoDjango内置简单特征转换成networkx曲线图的示例:code.google.com/p/marinemap/source/browse/lingcod/spacing/...
perrygeo




2

过去几年,我们也进行了一些研究,但我们仍然对pgRouting感到满意,并认为它是满足GIS-Routing需求的最佳解决方案。不幸的是,我所知不多(无需支付数千欧元/美元)。我们与Navtech -Data合作,该公司具有完善的网络可以合作,但并不便宜。我们还不时尝试使用OSM,该方法工作正常……但始终会出现一些问题,因此从未投入生产。

我们还刚刚遇到了上述开源 GraphHopper项目(几周前),并认为它具有非常好的性能和可能性。据我所知-他们的项目中还运行着OSM数据。



1

许多路由问题都使用Dijkstra算法确定最短路径。编写代码相对简单:http : //en.wikipedia.org/wiki/Dijkstra%27s_algorithm

另外,Guido van Rossum撰写了一篇有关Python图形的早期文章。他的短篇文章包括一种用于原始路由数据结构和编码的方法:http : //www.python.org/doc/essays/graphs.html

那里有很多路由包。出于特定的地理目的,除了pgRouting之外,还想到了graphserver(http://bmander.github.com/graphserver/)和ESRI ArcGIS Network Analyst。社交网络分析社区在以下位置提供了图形分析软件的列表:http : //www.insna.org/software/index.htmlhttp://www.insna.org/software/software_old.html。这些软件包中有许多是开源的,并且与地理环境相关。对于高度复杂,健壮或复杂的计算,像CPLEX和Lindo Lingo这样的线性编程包可能值得研究。


问题是大多数这些解决方案都需要一个由节点和链接组成的系统,而GIS数据通常不会以这种方式存储
dassouki 2010年

1
网络分析师大约是2500美元,对现在购买这样的产品并不真正感兴趣。我宁愿有一个
pythonic

2
Dijjkstra用于非常基本的图形。对于现实生活中的问题,通常这是一个非常繁琐且缓慢的算法。而且,由于ESRI软件不是开源的,因此很难进行改进,并且逐渐被其他工具所取代。
玛丽亚·阿里亚斯·雷纳多明戈斯

@dassouki,所有GIS数据本质上都是节点和链接,而诸如osm2pgrouting之类的工具以及一般的其他pgRouting脚本,将现有的GIS /空间数据转换为pgRouting中使用的必要的节点,链接和边线……
DPSSpatial


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.