回答:
Ben Reillyは最近、別の質問へのリンクを彼のutilitynetwork Pythonパッケージに投稿しました。このパッケージは、OGRバインディングを使用してデータをnetworkx DiGraphsに変換します。
インポート可能なグラフ形式とGDALでサポートされている形式のnetworkxリストから判断すると、そのような変換が可能かどうかは疑問です。
TranspoTools Will be here shortly
。google-codeリポジトリにコードはありますか?私が見ることができるものはすべて空でした。
ogr2networkx
タイプツールで共同して喜んでいます。
実行するネットワーク分析の種類について具体的には言及していませんが、ルーティングに関心がある場合は、いくつかのオプションがあります。
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を投稿するための十分な信用がありません...)
答えは異なると思います。ほとんどのGIS形式には隣接情報が明示的に含まれていません(たとえば、2つの機能が共通のエンドポイントを共有していることを示す単純なライン機能でいっぱいの.shpにはインジケーターがありません)。これは、ネットワークに直接読み取るための契約違反です。
コードをざっと見ると、エンドポイントがビットごとに同一である場合にのみ、scwによってリンクされたutilitynetworkパッケージがその情報を再検出するように見えます。これは、あなたを含むほとんどのニーズに十分対応できるでしょう。(これは確かにざっと見ただけだったので、私はこれについて間違っている可能性があります。)
より堅牢なものについては、たとえば、2つのエッジが交差するネットワーク内に新しいノードを作成する場合や、重なり合う端点がわずかに異なるようにする摂動を処理する場合など、アプローチを探す必要があります。ジオメトリをより深く検査します。
境界ジェネレーターを使用して、ポリゴンからネットワーク隣接情報を回復する同様のことを行いました。残念ながら、プラットフォーム、言語、幾何プリミティブが間違っています。ただし、堅牢性の問題にどのように取り組むかについては、洞察に満ちている場合があります。
MarineMapには、タスクに適応可能なgeodjangoコードがいくつかあります。
GML
ますがGeography Markup Language
、前者は後者を、後者はを指して いることに注意してくださいGraph Modelling Language
。