如何将线的简单特征转换为拓扑网络?


12

使用Gdal / OGR是否可以将shp,kml或PostGIS线层转换为节点和线段的网络,以便可以在诸如networkx的程序包中使用?


2
可能值得注意的是,虽然OGR和NetworkX都表示支持GML,但前者是指 Geography Markup Language后者Graph Modelling Language
fmark 2010年

Answers:



2

networkx的可导入图形格式列表GDAL支持的格式列表来看,我怀疑是否可以进行这种转换。


那真是太糟糕了。那么,我该如何进行网络分析?
dassouki 2010年

@dassouki-启动一个开源项目!它在我的清单上,但此刻还很低。如果其他人感兴趣,我希望有机会就此进行合作。
fmark

@fmark已经拥有transpotools.com
dassouki 2010年

@dassouki-听起来令人兴奋!该项目处于什么阶段?主页上说TranspoTools Will be here shortly。Google代码存储库中是否有任何代码?我所看到的一切都是空的。
fmark 2010年

@dassouki-只是要确认一下,我对传输分析领域了解不多(我的GIS兴趣不仅仅在于此阶段计算网络距离),但很乐意在ogr2networkx打字工具上进行协作。
fmark 2010年

2

您没有特别提到要进行哪种网络分析,但是如果您对路由感兴趣,则有两种选择:

PgRouting http://pgrouting.postlbs.org/使用PostGIS中的数据进行路由分析。它支持最短路径Dijkstra,最短路径A *,最短路径流星和旅行商(TSP)算法。它还可以计算行驶距离。可以在http://pgrouting.postlbs.org/wiki/pgRoutingDemo PgRouting驱动Ride the City http://www.ridethecity.com/应用程序中找到使用PgRouting的示例应用程序列表。

OpenRouter项目http://wiki.osgeo.org/wiki/OpenRouter。这个项目看起来很有趣,但目前还不是很成熟。

(对引用的URL表示歉意,但是我没有足够的信誉来发布> 1 URl ...)


为您+1。由于数据限制以及我们暂时放弃PostgreSQL的事实,我正在考虑摆脱openstreet和postgis数据。通常,我们提供的数据要比Openstreet好得多,但与此同时,我们也不想局限于灌浆。另一个问题是,假设我们要实现pythonic或arcgis友好型垃圾回收或中国邮递员或Traveler销售员问题。
dassouki 2010年

您看过SpatiaLite吗?这将为您提供一个基于文件和平台独立的OpenSource空间数据库。我没有使用过,但似乎具有SpatiaLite < gaia-gis.it/spatialite/spatialite-network-2.3.1.html >
DavidF 2010年

另外,感谢您引起NetworkX的注意。看起来真的很酷的Python模块。
DavidF

2

我认为答案取决于。大多数GIS格式都没有明确包含邻接信息(例如,.shp中没有充满简单线条特征的指示符,以指示两个要素共享一个公共端点),这是直接将其读取到网络中的交易突破点。

粗略地看一下代码,看起来只有当端点逐位相同时,由scw链接的Utilitynetwork软件包才会重新发现该信息。这可能足以满足包括您在内的大多数需求!(对此我可能是错的,因为这确实只是一个粗略的偷看。)

对于更强大的功能-例如,您可能希望在网络中两个边缘相交的地方创建新节点,或者您想处理使重叠端点略有不同的扰动-您必须寻找一种方法更深入地检查几何。

我已经用边界生成器做了类似的事情来从多边形中恢复网络邻接信息:不幸的是,错误的平台,语言和几何图元。然而,关于如何解决健壮性问题可能是有见地的。


+1 ...我不确定您使用的错误平台是什么意思?我理解您的解释,但实在令人震惊,因为我无法将数据转换为节点和权重。只能从shp文件执行此操作的两个程序是TransCAD和
EMME2

所谓“错误的平台”,我的意思是,至少到目前为止,Boundary Generator是为ArcGIS环境编写的。:)要使用OGR,需要进行一些调整。(还需要大量新代码来发现线中的重合端点,而不是多边形中的重合边。如果有时间的话,我可以将其添加到下一个版本中。这似乎很有用。 。)
Dan S.

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.