GRASS可以计算输入图的折线图表示吗?


10

我对计算输入图的折线图感兴趣,最好是在GRASS中,因为我以后将使用其他GRASS网络分析工具。我在GRASS文档中找不到对折线图的任何引用。我应该在搜索中使用其他术语还是会创建此类图形的隐藏函数?

对于上下文:

无向图G的线图是另一个图L(G),它表示G的边之间的邻接。

在此处输入图片说明

资料来源:http : //en.wikipedia.org/wiki/Line_graph


1
这个问题最好在grass-dev邮件列表中发布...
markusN


1
尽管输入必须是数字数据,但我在GRASS中找到的唯一参考是d.linegraph函数。我知道这没有多大帮助,但至少我们知道GRASS中有一些与折线图有关的东西:)
Joseph

我理解正确吗?您是否在寻找与PostGIS pgr_createTopology相反的东西,那里已经有了顶点,但想创建用两个顶点ID来描述的链接?您可以解析PostGIS顶点表来生成您正在寻找的网络吗?
阿德里安

@Adrian是的,可以通过输入图中的两个顶点来标识折线图中的顶点。线图中的边表示输入图中的边之间的邻接关系。如您所描述的那样,它也许可以与PostGIS一起使用,但是如果我必须从头开始实现某些功能,那不是我的首选。
Underdark

Answers:


3

如果Python没问题,那么有一些了解折线图的优秀Python模块。 一个示例是NetworkX(我随便安装了它sudo pip install networkx)。

这不是一个完美的答案,因为您需要编写一些粘合代码。首先,您需要将输入转换为NetworkX图形对象

import networkx as nx
G = nx.Graph()
G.add_node( ... )
G.add_edge( ... )

然后调用line_graph函数 get NetworkX计算折线图:

H = nx.line_graph(G)

最后,通过遍历H.edges()和,将结果转换回有用的东西H.nodes()

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.