GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

gboeing

osmnx – OSMnx:街路網用のPython。 OpenStreetMapからストリートネットワークを取得、構築、分析、視覚化

投稿日:

OSMnx:街路網用のPython。 OpenStreetMapからストリートネットワークを取得、構築、分析、視覚化します。 http://geoffboeing.com/publications/o…

OSMnx

ストリートネットワーク用のPython

OpenStreetMapからストリートネットワークを取得、構築、分析、視覚化する: 完全な概要

引用情報 :Boeing、G. 2017.「 OSMnx:複雑なストリートネットワークを取得、構築、分析、可視化するための新しい方法 コンピュータ、環境、都市システム 65,126〜139。 doi:10.1016 / j.compenvurbsys.2017.05.004

概要

OSMnxはPythonパッケージで、OpenStreetMapのAPIから街路網を構築したり、プロジェクトを作成したり、視覚化したり、分析したりすることができます。 ユーザーは、Pythonコードを1行で歩くことができ、運転しやすい、または自転車に乗る都市のネットワークをダウンロードして構築し、簡単に分析して視覚化することができます。

import osmnx as ox
G = ox.graph_from_place('Manhattan Island, New York City, New York, USA', network_type='drive')
ox.plot_graph(ox.project_graph(G))

数行のコードで、交差点の密度、ネットワークの循環、平均ブロックサイズ、PageRank、間の中心性、接続性、行き止まりや4方向交差の空間分布などを世界のどこでも調べることができます。

basic_stats = ox.basic_stats(G)
print(basic_stats['circuity_avg'])

extended_stats = ox.extended_stats(G)
print(extended_stats['pagerank_max_node'])

建物のフットプリント、標高データ、ストリートベアリング/オリエンテーション、ネットワーク配線を簡単にダウンロードして使用できます。

インストール

condaを使用してOSMnxをインストールします

conda install -c conda-forge osmnx

またはピップで

pip install osmnx

OSMnxをインストールする場合はまず geopandasrtreeをインストールしてください これらの依存関係をインストールするには、 conda-forgeを使用するのが最も簡単です。 インストールに問題がある場合は、 ドキュメントを読んでください。

特徴

OSMnxはgeopandas、networkx、matplotlibの上に構築され、OpenStreetMapのAPIを使って次のことができます:

  • 1行のコードで世界中のストリートネットワークをダウンロードできます
  • 他のインフラストラクチャネットワークタイプのダウンロード、ポリゴンの配置、フットプリントの作成、および興味のあるポイント
  • 都市名、ポリゴン、バウンディングボックス、またはポイント/住所+ネットワーク距離別にダウンロード
  • 運転可能、歩行可能、自転車、またはすべての街路網をダウンロードする
  • ローカル.osmファイルから道路ネットワークをロードする
  • ストリートネットワークを静的な画像またはリーフレットのウェブマップとして視覚化する
  • ネットワークのトポロジを単純化して修正し、交差点を清掃して統合する
  • シェイプファイルまたはGraphMLとしてネットワークをディスクに保存する
  • 位相幾何学的および空間的解析を実行して、数十の指標を自動的に計算する
  • 最短経路経路を静的画像またはリーフレットのウェブマップとして計算し、プロットする
  • 街路ネットワークおよび/または建物の足跡の図を描画する
  • ノードの標高をダウンロードし、エッジの等級を計算する
  • isolineマップとisochroneマップで移動距離と移動時間を視覚化する
  • ストリートベアリングと向きの計算と可視化

これらの機能の例とデモは、 例のrepoにあります。 より多くの機能の開発の詳細は、変更ログにあります。

ドキュメンテーション

readthedocsで入手可能なドキュメンテーション

例のrepoで使用できる

OSMnxの使い方

OSMnxのデモの概要については、このデモノートを参照してください。

OpenStreetMapから場所の境界形状ファイルを作成する

OSMnxでは、OpenStreetMap(都市、郡、州、国、地方自治体など)から空間的な「場所境界」ジオメトリをダウンロードし、シェープファイルに保存して投影し、プロットすることができます。 たとえば、Berkeleyの管理境界のシェイプファイルを取得、構築、保存するには、次のようにします。

city = ox.gdf_from_place('Berkeley, California')
ox.save_gdf_shapefile(city)

これらのシェイプファイルを作成するためのより深いデモンストレーションについては、 このノートブックを参照してください。

ストリートネットワークをダウンロードして構築する

OSMnxでは、道路ネットワークデータをダウンロードし、トポロジカルに修正された道路ネットワークを構築し、UTMに投影してネットワークをプロットし、後で使用できるようにSVG、GraphMLファイル、またはシェープファイルとして街路ネットワークを保存できます。 ストリートネットワークは指向され、一方向性を維持します。 API応答はローカルにキャッシュされるため、OSMnxはAPIから同じデータを複数回要求する必要がなく、帯域幅を節約し、速度を向上させることができます。

以下のいずれかのOSMnxを提供することで、街路網をダウンロードできます(下記の例を参照)。

  • バウンディングボックス
  • 緯度経度点+距離(ネットワークに沿った距離、または基点距離)
  • アドレス+距離(ネットワークに沿った距離、または基数)
  • 場所名または場所名のリスト(OSMnxが自動的にジオコードして境界を取得するため)
  • 所望のストリートネットワークの境界線のポリゴン

いくつかの異なるネットワークタイプを指定することもできます。

  • drive – 運転可能な公道を得る(但し、サービス道路ではない)
  • drive_service – 運転道を含む運転可能な通りを得る
  • walk – 歩行者が使用できる通りと道をすべて取得する(このネットワークタイプは片道の方向性を無視する)
  • bike – サイクリストが使用できるすべての通りと道を手に入れる
  • all – すべての非プライベートOSMの通りと道をダウンロードする
  • all_private – プライベートアクセスを含むすべてのOSMの通りと道をダウンロードする

たとえば、マンハッタンの運転可能なストリートネットワークをダウンロード、構築、プロジェクト、プロットするには:

G = ox.graph_from_place('Manhattan, New York, USA', network_type='drive')
ox.plot_graph(ox.project_graph(G))

街路ネットワークを作成するための詳細なデモンストレーションについては、 このノートブックを参照してください。

ストリートネットワークトポロジーの修正と簡素化

簡略化は通常、OSMnxによって自動的に行われますが、動作を確認するためにそれを分解することができます。 OpenStreetMapノードには交差点が含まれていますが、道路が湾曲している1つのブロックに沿ったすべての点も含まれています。 後者はグラフ理論上のノードではないので、それらをアルゴリズム的に削除し、「真の」ネットワークノード間のエッジの集合を単一のエッジに統合するが、実際の空間ジオメトリは保持する。 厳密と非厳密という2つの単純化モードがあります。 主な違いは、厳密モードとは異なり、非厳密モードは拡張グラフを簡素化できることです。

OSMnxでのトポロジ的簡素化の詳細なデモンストレーションについては、 このノートブックを参照してください。

ストリートネットワークをディスクに保存する

OSMnxでは、GISソフトウェア、GephiやNetworkXで動作するGraphMLファイル、Illustratorで動作するSVGファイルとして動作するように、ストリートネットワークをシェイプファイルとしてディスクに保存できます。 また、場所境界ジオメトリをシェープファイルとして保存することもできます。

ディスクへの/からのネットワークの保存とロードの例については、 このノートブックを参照してください。

ストリートネットワークの分析と可視化

OSMnxでは、ネットワークに沿った出発地と目的地のルートを計算し、それらを素早く視覚化することができます。 高さ、道路の等級、片道、交差点、高低の交差点、足跡の構築などを簡単に視覚化できます。OSMnxには、交差点密度、平均交差点、エッジなどの空間ネットワークメトリックを素早く計算する機能が組み込まれています。密度、平均ストリートセグメント長さ、クラスタリング係数、中間度など

OSMnxで街路ネットワークを分析する例については、 このノートブックを参照してください。

詳細情報

OSMnxのより完全な概要については、これをお読みください

雑誌の記事をダウンロード/引用してください

さらに多くの例については、 例repoを参照してください。







-gboeing
-, , , , , , , , , , , , , , , , , , , ,

執筆者: