0

私はこのような配列を持っています (配列はTIF勾配ラスターを変換することによって作成されました)

[[ 15.26072407  16.01073837  27.81685448  24.49266815  32.94010162]
 [ 26.0834446   21.01086426  30.02531815  25.44641304  19.48436928]
 [ 21.98579979  19.06574059  24.44838905  26.67520905  26.61030769]
 [ 20.42549133  28.58900261  17.00629425  31.25236893  32.34066772]
 [  8.33120537  24.303339     7.85025167  35.50911713  29.56856346]]

この配列をグラフに変換しました。配列の最初のノードは次のようになります。

>>> G[1]
{0: {'weight': 26.083444595336914}, 1: {'weight': 21.0108642578125}, 2: {'weight': 19.06574058532715}, 3: {'weight': 28.58900260925293}, 4: {'weight': 24.3033390045166}}

ここで、ノード 1 のエッジ 3 とノード 4 のエッジ 1 の間の最短経路を見つけたいと思います。それは可能ですか、それとも別の方法でグラフを設定する必要がありますか? 可能です、どうすればいいですか?ノード間のパスしか見つけることができnx.shortest_path(G,source=0,target=4)ませんでした(たとえば、エッジ間ではありません。


TIF は、最初に GDAL を使用して配列に変換されます。

import gdal, numpy
import networkx as nx

# Open data
input_raster = "slope5.tif"
raster = gdal.Open(input_raster)

# read raster as arrays
bandraster = raster.GetRasterBand(1)
arr = bandraster.ReadAsArray()

G = nx.DiGraph(arr)
4

0 に答える 0