ラインの単純なフィーチャーをトポロジーネットワークに変換する方法は?


12

Gdal / OGRを使用して、shp、kml、またはPostGISラインレイヤーをノードとセグメントのネットワークに変換し、networkxなどのパッケージで使用できるようにする方法はありますか?


2
OGRとNetworkXはどちらもサポートしていると言っていGMLますがGeography Markup Language、前者は後者を、後者はを指して いることに注意してくださいGraph Modelling Language
fmark

回答:



2

インポート可能なグラフ形式GDALサポートされている形式のnetworkxリストから判断すると、そのような変換が可能かどうかは疑問です。


それはくだらない取​​引です。では、どうすればネットワーク分析を実行できますか?
dassouki

@dassouki-オープンソースプロジェクトを開始してください!それは私のリストにありますが、今のところずっと下にあります。他の人が興味を持っているなら、私はこれに協力する機会が欲しいです。
fmark

@fmarkにはすでにtranspotools.comがあります
dassouki

@dassouki-わくわくするね!プロジェクトはどの段階にありますか?ホームページは言うTranspoTools Will be here shortly。google-codeリポジトリにコードはありますか?私が見ることができるものはすべて空でした。
fmark

@dassouki-確認のために、私はトランスポート分析フィールドについてはあまり知りません(私のGISの関心は、この段階ではネットワーク距離を計算することにほど遠くありません)が、ogr2networkxタイプツールで共同して喜んでいます。
fmark

2

実行するネットワーク分析の種類について具体的には言及していませんが、ルーティングに関心がある場合は、いくつかのオプションがあります。

PgRouting http://pgrouting.postlbs.org/は、PostGISのデータを操作してルーティング分析を行います。Shortest Path Dijkstra、Shortest Path A *、Shortest Path Shooting Star、Traveling Salesperson(TSP)アルゴリズムをサポートしています。また、走行距離の計算も行います。PgRoutingを使用するサンプルアプリのリストは、http://pgrouting.postlbs.org/wiki/pgRoutingDemo PgRoutingがRide the City http://www.ridethecity.com/アプリをドライブするところにあります。

OpenRouterプロジェクトhttp://wiki.osgeo.org/wiki/OpenRouter。このプロジェクトは興味深いように見えますが、現時点では特に成熟していません。

(引用されたURLについてお詫びしますが、> 1 URlを投稿するための十分な信用がありません...)


+1してください。データの制限と、今のところpostgisを廃止しているという事実のため、openstreetとpostgisのデータから離れることを検討しています。通常、Openstreetよりはるかに優れた独自のデータを提供しますが、同時に、グラウトに限定する必要はありません。もう1つの問題は、pythonicまたはarcgisに適したガベージコレクション、または中国の郵便配達やトラベラーのセールスマンの問題を実装したいとしましょう。
dassouki

SpatiaLiteを見たことがありますか?これにより、ファイルベースでプラットフォームに依存しないオープンソースの空間データベースが得られます。まだ使用していませんが、SpatiaLite < gaia-gis.it/spatialite/spatialite-network-2.3.1.html >
DavidF

また、NetworkXに注目していただきありがとうございます。これは本当にクールなPythonモジュールのように見えます。
DavidF 2010

2

答えは異なると思います。ほとんどのGIS形式には隣接情報が明示的に含まれていません(たとえば、2つの機能が共通のエンドポイントを共有していることを示す単純なライン機能でいっぱいの.shpにはインジケーターがありません)。これは、ネットワークに直接読み取るための契約違反です。

コードをざっと見ると、エンドポイントがビットごとに同一である場合にのみ、scwによってリンクされたutilitynetworkパッケージがその情報を再検出するように見えます。これは、あなたを含むほとんどのニーズに十分対応できるでしょう。(これは確かにざっと見ただけだったので、私はこれについて間違っている可能性があります。)

より堅牢なものについては、たとえば、2つのエッジが交差するネットワーク内に新しいノードを作成する場合や、重なり合う端点がわずかに異なるようにする摂動を処理する場合など、アプローチを探す必要があります。ジオメトリをより深く検査します。

境界ジェネレーターを使用して、ポリゴンからネットワーク隣接情報を回復する同様のことを行いました。残念ながら、プラットフォーム、言語、幾何プリミティブが間違っています。ただし、堅牢性の問題にどのように取り組むかについては、洞察に満ちている場合があります。


+1 ...間違ったプラットフォームとはどういう意味かわかりませんか?私はあなたの説明を理解しました、そして、私がデータをノードと重みに変換することができないのは本当に打撃です。shpファイルからそれを行う唯一の2つのプログラムは、TransCADとEMME2 / 3です
dassouki

「間違ったプラットフォーム」とは、少なくとも現時点では、Boundary GeneratorがArcGIS環境用に作成されたことを意味します。:) OGRを使用するには、多少の調整が必要です。(また、ポリゴンからの一致するエッジとは対照的に、ラインからの一致するエンドポイントを検出するための新しいコードのかなりのビットが必要になります。時間があれば、次のバージョンにこれを追加するかもしれません。非常に便利なようです。 。)
Dan S.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.