可視領域計算を実装する方法は?


11

可視性(別名可視領域)を実装する方法を探しています。以前のGIS SEの質問で、いくつかのGISアプリケーション(必要なものではありません-計算を埋め込むことを試みています)とSAGAを提案しました。SAGAは私が探しているもの(C ++、Java、C#クラス)に似ていますが、インスタンス化(またはサブクラス)する必要があるクラスを把握するためのAPIドキュメントを十分に理解できません。

私はSAGAの考えに縛られていません-私は、相互可視性の計算を行うことができるライブラリ/エンジンを探しています。

制約は次のとおりである必要があることです。

  • 合理的に「軽量」(埋め込み/モバイルをカバーできるようにしたいので)
  • 合理的にオープンソース(私のアプリケーションはオープンソースになりますが、(L)GPL互換であれば、どのライセンスでも正確に柔軟に対応できます)。

誰でもそのようなライブラリまたはエンジンを推奨し、計算の可視化に使用する必要があるライブラリまたはエンジンのビットの説明またはリンクを提供できますか?

代わりに/追加で、これらの計算を効率的な方法で行う方法を説明した論文またはチュートリアルへの参照も感謝します(組み込み/モバイルデバイスに適用されるため、GPUベースの実装は、より一般的で、低電力デバイスを処理します)

私の好みは、自分で何かを作成するのではなく、既存の実装です(これはバックアップオプションです)。

編集:C ++は必須要件ではありません-合理的に移植可能なもの(C#、C ++、Java)で十分です。大規模なアプリケーションを埋め込むのではなく、ライブラリまたはテンプレートを探しています。


2
実際に完全なZTVアルゴリズムが必要ですか?おそらくOpenGLで地形をモデル化し、その結果を分析しますか?スマートフォンのグラフィックアクセラレーションはますます優れており、これを活用できます。OpenGLは正投影もサポートします。
マシュースネイプ

「正しい」答えを生成する限り、OpenGLは一見の価値があります。GISタイプデータからこれを行う例/ポインターはありますか?
BradHards

回答:


8

参照されているGIS SEの質問からわかるように、少なくともSAGAおよびGRASS GIS以外のオープンソース市場では、スタンドアロンパッケージを可視化する方法はあまりないようです。これらのアルゴリズムのコードのラッパーを書くことは別として、残念ながら自分で可視領域を実装することになります。(これについては修正したいと思いますが。)

GRASS r.viewshed関数のドキュメントを読むと、アルゴリズムの広範な説明と、1つのviewshedアルゴリズムについて詳しく説明している次のペーパーへの参照が提供されます。

外部メモリの地形の可視性の計算。ハーマン・ハーバーコルト、ローラ・トーマ、イー・ツィアン。第9回アルゴリズム工学と実験に関するワークショップ/分析アルゴリズムと組み合わせ論に関するワークショップ(ALENEX / ANALCO 2007)の議事録。

別の方法として、ViewshedのWikipediaの記事は参照を提供します。

ウー、H。、パン、M。、ヤオ、L。、およびルオ、B。(2007)。大規模DEMで可視領域を生成するためのパーティションベースのシリアルアルゴリズム。地理情報科学の国際ジャーナル、21(9)、955-964。


まさに私が望んでいた答えではありませんでしたが、最良の答えが提供されました。これについてのあなたの仕事に感謝します。
BradHards

心配ない。頑張ってください!
om_henners

4

Radio Sheidと呼ばれるフリーウェアパッケージがあり、これはビューシェッドを生成する無線通信研究用に設計されています。出力はDEM入力に基づいており、ベクトル(ポイントファイル)またはラスターのいずれかです。ベクターポイントファイルを使用して、スクリプトを通じてポリゴンを作成することができました。喜んで共有します。ラスタ出力にパレットを設定できるため、gdalを使用してラスタをベクトルに変換することもできます。

プログラムにはGUIがありますが、バッチモードで実行することもできるため、プログラムに簡単に組み込むことができます。従来の可視領域に必要なものよりも多くのオプションがありますが、これらをnullに設定して、送信機の電力などの効果が含まれないようにすることができます-http://www.g3tvu.co.uk/RM_Batch_Files.htmを参照してください

プログラムはhttp://www.cplus.org/rmw/rme.htmlにあります。著者も非常に役に立ちます。

お役に立てれば、


おもしろいですが、オープンソースではないようで、ウィンドウのみです。そのため、モバイル環境では機能しません。
BradHards
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.