ラインシェープファイルをノードとリンクを含むCSVに変換する方法は?


12

線形シェープファイルを次の形式のCSVファイルに変換する方法はありますか。

Node_1, Node_2, attribute_1, ...., attribute_x
     1       2       "hello"        567845.334

私はGDAL / OGR2OGRPostGISを見てきましたが、どちらもデータを希望の形式に変換するとは思いません。

私が正しい方向に導かれていれば、それを行うスクリプトを書いてもかまいません。


あなたの例では、Node_1、Node_2はあなたの特徴の実際の座標ですよね?つまり、あなたの例から、実際には、シェープファイルからトポロジーをエクスポートすると仮定します。Node_1がFNODEであるように、Node_2はTNODEであり、ジオメトリは一度だけ格納されます。その場合、答えは大きく異なり、トポロジを構築するにはOGR以外のものが必要になります。
Ragi Yaser Burhum、2009

@rburhum自分のテーブルを従来のネットワークアルゴリズムで実装したい。形式は通常、Xのコストでノード1からノード2へ
dassouki '19

回答:


8

OGR(OGR2OGR)に含まれているユーティリティプログラムはこれを直接実行しませんが、OGRを使用してこれを実行するのは非常に簡単です。

OGRでサポートされている任意の言語でスクリプト/プログラムを作成する必要があります。シェープファイルを開いて各フィーチャを読み取り、ポイント+データをCSV形式で書き出すだけで済みます。

WikiサンプルC ++コードは、実際にこれに必要なほぼすべてのOGR API呼び出しを示しています。


迅速な対応ありがとうございます。SHPからCSVファイルに出力するgdal.org/ogr/ogr%5Fapitut.html最初のpythonの例を見ています。この例はポイントレイヤーに対して行われましたが、ラインレイヤーに変換するために大きな違いはありますか?ノード名の形式は何ですか?数字になりますか?すべてのノード名が含まれている別のポイントレイヤーにリンクできますか?
dassouki 2009

行では、機能はogr.wkbPointではなくogr.wkbLineになります。feature.GetFieldAsString(col)を使用して、名前を文字列として返すことができます。OGRで直接「リンク」を処理する方法はないため、他のデータテーブルを開いて自分で検索するか、最初にGISで名前をコピーする必要があります
Reed Copsey

それは理にかなっている; まあ私はそれを試してみて、あなたが私がどのようにしたかについてあなたに最新の状態を保ちます。これをすべて行っているので、ラインレイヤーでネットワーク分析を行うことができます。
dassouki 2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.