建築・都市計画数理のなかでも、特にポピュラーなものがネットワーク分析でしょう。建築や都市を、ネットワークとして抽象的に表現することにより、数理的に扱いやすい形にしたうえで分析やシミュレーションを行うことは常套手段です。
目標
- Rhinocerosでネットワークを描く
- Rhinocerosで描いたネットワークをPythonで読み込めるように書き出す
- 書き出したファイルをPythonで読み込んで隣接配列を作る
本記事では第1項に取り組みます。
建築・都市の中のネットワーク
建築や都市の中には、様々なネットワークが織り込まれています。
対象 | ノード | エッジ |
---|---|---|
建築平面 | 部屋,開口部 | 廊下,通路 |
道路 | 交差点,建物出入口 | 道路 |
鉄道 | 駅 | 線路 |
ネットワークはノードとエッジからなっており、エッジには(時にはノードにも)"重み"が与えられています。重みは、そのエッジを通過するのに必要な移動距離、時間(時間距離)、費用(金銭距離)などを設定できます。重みの与え方ひとつで、分析の幅と面白さはぐんと上がります。
Rhinocerosでネットワークを描く
とにもかくにも、ネットワークを描いてみましょう。今回はRhinocerosというCADソフトを使ってネットワークを描いてみます。建築界隈の人の中には、Rhinocerosに明るい人がいるかもしれません。Rhinocerosは、そのなかでPythonを動かすことができるので、建築・都市計画の数理的な研究をする上では非常に使い勝手が良いです。今回は、下の地図(国土地理院地図)をもとに歩行空間ネットワークを描いてみます。
[](
ネットワークを描くルールは統一する
道路中心線などの公のベクターデータがあればそれを用いれば良いですが、ない場合には自分で線を引っ張る必要があります。そのときに大事なのが、自分で決めたルールを守ることです。おそらく、皆さんがご自身でネットワークを描くときには、「曲がった道路をどうしようか」とか「建物をネットワークにどう接続しようか」とかに頭を悩ませることでしょう。実際、ネットワーク分析はネットワークの描き方に結果が大きく影響されることがあります。重要なのは、その結果がネットワークの描き方によるものなのか、本質的なものなのかを判別できるようにしておくことです。そのためにも、一度決めたルールをネットワーク全体で統一させておく必要があります。
今回は歩行空間ネットワークを描きますが、これに関して国土交通省より示されている整備仕様案1に従います。すると、下の図のようなネットワークになります。
今回、ネットワークは平面上にあるので、自己交差するようなエッジはありません。歩道橋や地下道などがある場合には、それらも含めてモデリングすると、より精緻な分析ができます。
【次回】Rhinocerosで描いたネットワークを
Pythonで読み込めるように書き出す
さて、Rhinocerosでネットワークを描き終えた後、分析するにあたり、そのネットワークをプログラミング言語が理解できるようなデータに翻訳してあげる必要があります。次回は、そのデータ構造と、データの作り方について説明します。
→RhinocerosでモデリングしたネットワークをPythonで読み込む②
ホームページのご案内
建築・都市計画数理に関する私の研究の内容や、研究にまつわるtips等は、個人ホームページにて公開しています。ゆくゆくは、気軽に使える分析ツールも作っていきたいと思っているので、ぜひ覗きに来てください。
→田端祥太の個人ホームページ