4
ストリートデータ(グラフ)での近隣(クリーク)の検索
都市の近隣をグラフ上のポリゴンとして自動的に定義する方法を探しています。 私の近所の定義には2つの部分があります。 ブロック:通り(エッジ)と交差点(ノード)の数が最低3(三角形)である、いくつかの通りの間で囲まれた領域。 近隣:特定のブロックについて、そのブロックに直接隣接するすべてのブロックとブロック自体。 例については、この図を参照してください。 たとえば、B4は7つのノードとそれらを接続する6つのエッジによって定義されるブロックです。ここでのほとんどの例と同様に、他のブロックは4つのノードとそれらを接続する4つのエッジによって定義されます。また、B1の近傍にはB2が含まれ(逆も同様)、B2にもB3が含まれます。ます。 OSMからストリートデータを取得するためにosmnxを使用しています。 osmnxとnetworkxを使用して、グラフを走査して各ブロックを定義するノードとエッジを見つけるにはどうすればよいですか? 各ブロックについて、隣接するブロックをどのように見つけることができますか? 私は、グラフと座標(緯度、経度)のペアを入力として受け取り、関連するブロックを識別して、そのブロックのポリゴンと上記で定義した近傍を返すコードに向けて取り組んでいます。 以下は、マップを作成するために使用されるコードです。 import osmnx as ox import networkx as nx import matplotlib.pyplot as plt G = ox.graph_from_address('Nørrebrogade 20, Copenhagen Municipality', network_type='all', distance=500) そして、ノードの数と次数が異なるクリークを見つけるための私の試み。 def plot_cliques(graph, number_of_nodes, degree): ug = ox.save_load.get_undirected(graph) cliques = nx.find_cliques(ug) cliques_nodes = [clq for clq in cliques if …