複数の特定場所から複数の特定場所への媒介度(passcount)計算

出発場所、目的場所をそれぞれ複数指定して、各出発場所から各目的場所まで(マルチ)最短経路で移動した場合の、通過回数(passcount)を各ノードに対して加算します。 graph_module_betweenness1 このサンプルは、出発ポイント群、と目的ポイント群を分けて入力しています。各ポイントそれぞれ最寄のノードを距離計測の出発ノード・目的ノードにしています。計算が終わった後の結果ソート、今回のケースではノードのリストをpasscountおn多い順、つまり降順に行うほうが、直感に即しているでしょう。これも同様、pythonではラムダ式ソートが可能ですので、非常に簡潔です。降順では reverseというキーのフラグをTrueにします。 こうすると、g.nodes というノードのインスタンスの入ったリストを、Nodeクラスの passcountというプロパティメンバーに対して降順ソートが行われ、ソート済みのリストが passscountrank に返ってきます。

  • Comments Off on 複数の特定場所から複数の特定場所への媒介度(passcount)計算

複数の特定場所からのminisum計算

場所を複数指定して、そこからの距離の合計(sumdist)を各ノードに対して行います。 graph_module_minisum1 今回は、ポイントを複数入力して各ポイントそれぞれ最寄のノードを距離計測の出発点にしています。計算が終わった後、結果をソートする場合、今回のケースではノードのリスト Graph.nodes コード中では g.nodes をソートすることにあります。つまりクラスのインスタンスのリストをソートすることになりますが、pythonではラムダ式ソートが可能ですので、非常に簡潔です。 こうすると、g.nodes というノードのインスタンスの入ったリストを、Nodeクラスの sumdist というプロパティメンバーに対してソートが行われ、ソート済みのリストが minisumrank に返ってきます。

  • Comments Off on 複数の特定場所からのminisum計算

Rhino/GH-python Graph Module 勾配負荷設定(有向グラフ化)

一つ一つのエッジに対して、往路 復路 の距離を変更します。下のコードは勾配を求めるところまでで、勾配の値をどのように距離に変換するかは未記述です。すごく勾配負荷を影響させるか、ほどほどにするか、各自の関数(formula)を考えてください。 この関数を作ってエッジの重みを変更した後、Dijkstraでその経路選択に影響が出ます。またminisum, betweennessの計算にも影響があるはずです。

  • Comments Off on Rhino/GH-python Graph Module 勾配負荷設定(有向グラフ化)

Rhino/GH-python Graph Module 評価関数サンプル(近接度)

評価関数サンプル(媒介度)の続きです。 有向グラフにおいてminisum評価の基になる、各ノードからの他のすべてのノードに行く距離の合計の求め方 有向グラフにおいてminisum評価の基になる、各ノードへの他のすべてのノードから来る距離の合計の求め方(超絶微妙な違いわかります?) 以下のように続ければ、数値の高いノードほどminisum近接性が高いということになります

  • Comments Off on Rhino/GH-python Graph Module 評価関数サンプル(近接度)

Rhino/GH-python Graph Module 評価関数サンプル(媒介度)

Rhino/GH-python Graph Module 、内部に組み込まれているDijkstra(Fast)関数や、traceRoute(s)関数を使って、評価関数を作る例です。以下のサンプルはこのライノモデルの使用を想定。 全通りを行き来する媒介度計算(エッジを2つだけ持つノードを含める場合) 全通りを行き来する媒介度計算(エッジを2つだけ持つノードを含めない場合)

  • Comments Off on Rhino/GH-python Graph Module 評価関数サンプル(媒介度)