GRASSは入力グラフの線グラフ表現を計算できますか?


10

入力グラフの折れ線グラフの計算に興味があります。後で他のGRASSネットワーク分析ツールを使用するので、できればGRASSを使用します。GRASSドキュメントに折れ線グラフへの参照が見つかりませんでした。検索で使用する別の用語や、そのようなグラフを作成する非表示の関数はありますか?

コンテキスト:

無向グラフGの線グラフは、Gのエッジ間の隣接関係を表す別のグラフL(G)です。

ここに画像の説明を入力してください

出典:http : //en.wikipedia.org/wiki/Line_graph


1
この質問は、おそらくより良い...草-devメーリングリストに投稿された
markusN


1
入力は数値データでなければなりませんが、GRASS内で見つけた唯一の参照はd.linegraph関数です。私はそれがあまり役に立たないことを知っていますが、少なくとも私たちは、GRASSに線グラフに関連する何かがあることを知っています:)
Joseph

私はこれを正しく理解しましたか?PostGIS pgr_createTopologyの反対のようなものを探しています。すでに頂点はありますが、代わりに2つの頂点IDで記述されたリンクを作成したいですか?PostGIS頂点テーブルを解析して、探しているネットワークを生成できますか?
Adrian

@エイドリアンはい、折れ線グラフの頂点は、入力グラフの2つの頂点によって識別できます。折れ線グラフのエッジは、入力グラフのエッジ間の隣接関係を表します。多分それはあなたが説明するようにPostGISで動作しますが、私が何かを最初から実装しなければならない場合、それは私の最初の選択ではありません。
アンダーダーク

回答:


3

Pythonに問題がない場合は、折れ線グラフについて知っている優れたPythonモジュールがいくつかあります。 1つの例は、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()ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.