川沿いのポイント間の距離を見つける(線形参照)


10

私はgisに新しいと打たれました。小さなラインストリング(ポリライン)で構成される川のネットワークがあります。別のシェープファイルで、私は川のいくつかの駅の場所を持っています。各駅から川の終わりまで、川沿いの距離を調べる必要があります。

問題は、川の1つの完全なラインストリングがないことです。また、ラインストリングを結合またはマージするために使用できる共通の属性はありません。また、いくつかの駅は支流にあります。

ここに画像の説明を入力してください

つまり、支流を含む大規模な河川ネットワークを作成し、ライナーリファレンスを実行する必要があります。しかし、私はこれを行う方法がわかりません。どんな助けでも深く感謝します。できるだけ明確に説明してください。

さらに情報が必要な場合はコメントしてください。


3
どのソフトウェアプラットフォームを使用していますか?
TheSteve0

私はarcmap arcinfoを試しました。しかし、それは線形参照に関する情報をあふれさせていました。次に、pgRoutingとQGISに移動しました。まだ苦労しています。
Naresh 2011

ArcGIS Network Analystエクステンションにアクセスできますか?河川を使用してネットワークデータセットを構築することは可能だと思います。そうすれば、最短距離を見つけるのは非常に簡単になるはずです。
radek

回答:


2

BWillに同意します。主な問題は、各ポリラインの原点を定義することです。「川」とは何ですか?は、支流が支流の長さ0->から始まるスタンドアロンの「ルート」であると仮定します。次に、主要な河川についても同じようにしますが、この場合は、構成するすべてのポリラインからマージされたポリラインを作成します。私はあなたが持っているとあなたはそこに「ほとんど」いると思います。次に:支流を含むすべてのマージされたポリラインを測定されたポリライン(PolylineM)に変換します。その後、「ルートネットワーク」ができます。それからは、各駅のルートに沿った距離を見つけることです。ステーションの場所はXYで定義されていると思いますか?また、別の推測では、川の真上に落ちることはありません。彼らは?いずれの場合も、各川または支流の始点からの駅の距離を見つける方法が必要になります。理論的には、駅が川と支流の交差点にある場合、2つの場所(それぞれに1つ)がある場合があります。

この場所を見つけるには、ArcMapツールを使用できますが、しばらく使用していないため、頭のてっぺんを思い出せません。一方、シェープファイル(?)をPostGISにインポートする場合は、ST_Line_Locate_Pointを使用できます。この機能:

指定されたポイントにLineStringの最も近いポイントの位置を表す0と1の間の浮動小数点数を、2Dラインの長さの合計の割合として返します。

つまり、川沿いの場所を見つけて、(マージされた)川の長さに掛け合わせることができます。最後の注意-PostGISを使用する場合、PolylineMを作成する手順を実行する必要はありません。ArcGISのみが線形参照にこれを必要とします。

これが理にかなっているといいのですが!


私の駅は支流や川の上にあります。ばかげたことは、大きな川は1つではなく、ラインの小さなセグメントだけであるということです。大きな川を見ることができます。データ自体には、完全な川を作成するための共通の属性がありません。また、私は度で座標を持っているので、アークマップでルートを作成すると、度で長さがわかりますか?それは意味がないと思います。座標をwgs84から他の投影法に変換する必要があります。はい、PostGISにシェープファイルをインポートしました。
Naresh 2011

1

同じ性質の私の質問から、

距離を指定して線に沿ってポイントを作成する方法

以下の便利なリンクが出てきました。
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs

努力が足りないので自分の仕事を完了しません。あなたが経験する退屈さは、各ポリラインの原点を指定していると思います。


2
少し進歩しました。pGroutingを使用して最短パスを見つけることができますが、「ノード」を更新する必要があります。現在、postgresqlでノードテーブルを作成し、それを使用して、pgroutingにフィードするネットワークを作成しています。しかし、テーブルにエンドノードではないカスタムノードを追加する必要があります。愚かな方法は、ステーションでポリラインを分割して、自動的にノードになるようにすることです。まだ働いています。すぐに更新してください。
Naresh 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.