想一想,我认为唯一的选择是使用R或RPY进行分析。
基本上,我正在尝试解决基于非PostGIS数据库的路由问题。因为我的大多数数据实际上都以不同的格式存储;但是,转换并不难。我发现pgRouting愚蠢的大脑很难实现。因此,也许我可以轻松调整的非数据库解决方案对我来说很理想
#1 楼
[编辑:已被pypi(easy_install nx_spatial)提供的nx_spatial取代。导入shapefile现在是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,因此所有这些功能可用。
#2 楼
尽管线程有些陈旧,但我想添加一些有关路由的链接,以防有人像我那样在此处结束:OSRM <-推荐
鲁蒂诺
#3 楼
Flowmap是一个专门用于处理网络分析问题的利基GIS软件包。如果您有一个非常简单的用例,则基于QGIS的Quantum Navigator可能会解决问题。
GRASS还支持网络分析,尽管在环境中进行设置可能并不值得。
#4 楼
您可以查看开源的GraphHopper项目-一个快速,灵活的路线规划器。在这里尝试一下。注意:我是作者
#5 楼
过去几年,我们也进行了一些研究,但我们仍然对pgRouting感到满意,并认为它是满足GIS-Routing需求的最佳解决方案。不幸的是,我所知不多(无需支付数千欧元/美元)。我们与Navtech-Data合作,该网络可以与之完美协作,但价格不菲。我们还不时尝试使用OSM,该方法可以正常工作……但始终会遇到一些问题,因此从未投入生产。我们还刚刚遇到了上述开源GraphHopper项目(几周前),并认为它具有很好的性能和可能性。据我所知-他们的项目中也运行着OSM数据。
#6 楼
许多路由问题都使用Dijkstra算法确定最短路径。编写代码相对简单:http://en.wikipedia.org/wiki/Dijkstra%27s_algorithmGuido 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.html和http://www.insna.org/software/software_old.html。这些软件包中有许多是开源的,并且与地理环境相关。对于高度复杂,健壮或复杂的计算,像CPLEX和Lindo Lingo这样的线性编程包可能值得研究。
#7 楼
您也可以使用GeoTools的图形包进行布线。
评论
我认为此示例与GeoTools图有关有用的practicalgeoblog.blogspot.com/2011/03/…
– ThomasG77
2011-3-8在9:08
#8 楼
您也可以查看RouteWare中的工具。长期记录,不受数据库约束#9 楼
您可以使用Grasshopper API-它们具有一个可以在其中使用的矩阵组件,称为Matrix API。还有Mapzen Leaflet Routing Plugin或Mapzen Valhalla引擎
作为Mapbox Distance API,您可以点击
#10 楼
在Alpha中发布,但看起来很有希望:GeoDaNet(Alpha)-网络的空间点模式分析(基于位于GeoDa中心的PySAL Ptyhon库)。
(幻灯片,手册,下载。)
评论
问题是这些解决方案中的大多数都需要一个由节点和链接组成的系统,而GIS数据通常不会以这种方式存储
– dassouki
2010年8月5日,11:06
网络分析师大约是2500美元,对现在购买这样的产品并不感兴趣。我宁愿有一个pythonic解决方案
– dassouki
2010年8月5日,11:07
Dijjkstra用于非常基本的图形。对于现实生活中的问题,通常这是一个非常繁琐且缓慢的算法。而且,由于ESRI软件不是开源的,因此很难进行改进,并且逐渐被其他工具所取代。
–玛丽亚·阿里亚斯·德·雷纳·多明格斯(MaríaArias de ReynaDomínguez)
2013年12月11日11:43
@dassouki,所有GIS数据本质上都是节点和链接,而osm2pgrouting之类的工具以及一般的其他pgRouting脚本,会将现有的GIS /空间数据转换为pgRouting中使用的必要的节点,链接和边...
– DPSSpatial
16年1月27日在21:53