2011-01-22 8 views
2

私は、いくつかのベクトルレイヤーと2次元視線にしか関心がないという状況があります。典型的な使い方は地形なので、視線は通常ラスタデータで実行されることはわかっています。その言葉はあいまいで、無用に近い私の状況です:ベクターGISデータの視線?

私はポリゴンの海岸線のベクトルshapefile、どこかの水中に置かれた "ソース"ポイント、および大きな半径の円を表す "バッファ"ポリゴンレイヤーを持っています「ソース」ポイント。私は、ソースポイントの「視界の中にある」バッファポリゴンの部分だけに興味があります。下の画像では、赤い点がソース、オレンジのポリゴンが海岸線で切り取られたバッファー、黄色のポリゴンが私が興味を持っているものです。これでも私が望むほどうまくはありません。

画像:http://i.stack.imgur.com/IKBLv.png

私は私が今使用して、プロセス(かなり時間のかかる)を自動化したいとPython/numpyの/ scipyのダウンロード/ OGR/GRASSの代わりに、ESRIのものを使用することを好むだろう。

どのように線に沿ってトレースし、「可視性」をチェックするか考えていますか?私はすべてをラスタライズして、GRASS内で従来の放射状の見通しスクリプトを使用することができましたが、メモリ内に保持されたデータが多すぎるため、いくつかのベクトルの交点に衝突しないピクセルのチェックを実行するように見えます。可能な限り高い精度を維持しながら、私はできるだけ軽くなりたい。

答えて

0

あなたのポイントと海岸線シェイプファイルの各ポイントとの間の線を考えるのはどうですか? 「土地」ポリゴンと交差する場合(土地を横切る)、海岸のその点は表示されません。表示されているすべての点を取り出し、それらを使用して可視領域の新しいポリゴンを形成します。

+0

私もあなたのコメントのおかげでその考えを持っていた。各頂点のチェックをやり直すことができますか、各ラインをセグメントに分割する必要がありますか? –

+0

土地形状ファイルと一致するカバレッジの後にある場合は、各頂点が十分であることを確認する必要があります。可視でない点も保存する場合は、非表示領域の2番目のシェイプファイルを作成することができます。 – Benjamin

関連する問題