複数のポリゴンを含むシェープファイルを使用して、LIDARファイル(.las、.xyz)をクリップまたはフィルタリングしようとしています。
この空間操作を実行できるオープンソースソフトウェアはありますか?
私の.lasファイルは膨大であり、DEMデータと分析は非常に新しいので、どんな助けでも大歓迎です。
複数のポリゴンを含むシェープファイルを使用して、LIDARファイル(.las、.xyz)をクリップまたはフィルタリングしようとしています。
この空間操作を実行できるオープンソースソフトウェアはありますか?
私の.lasファイルは膨大であり、DEMデータと分析は非常に新しいので、どんな助けでも大歓迎です。
回答:
@Michal Mackiewiczの回答(Fusion / LTKについて)の2番目なので、この例を参考にしてください。
これはPolyCLipData
構文コマンドです(マニュアルの110ページを参照):
PolyClipData [switches] PolyFile OutputFile DataFile
コマンド(NotePad ++など)を実行する前に、テキストエディターを使用してコマンドを記述します。拡張子.bat
(バッチファイル)を付けてファイルを保存します。実行する前にファイルを保存することを忘れないでください。
あなたが持っていると仮定します:
次のように書きます:
c:\fusion\polyclipdata c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las
multifile
ポリゴンから生成されたlasファイルを別のファイルに保存する場合は、スイッチを使用します。例えば:
c:\fusion\polyclipdata /multifile c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las
shape
スイッチを一緒に使用してmultifile
、PolyFileのdbf列の1つに値が埋め込まれた複数のOutputFilesに名前を付けます。たとえば、ID情報を使用してファイルに名前を付けたい場合(IDがシェープファイルの最初の列にあると仮定します)。書く:
c:\fusion\polyclipdata /multifile /shape:1,* c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las
PolyClipData
複数のシングルパーツシェープファイルで使用するlasファイルのクリッピングについては、次の投稿を参照してください。
クリッピングLASデータと複数のシェープファイル
のデータファイルパラメータとして.txtファイルに埋め込まれている複数のlasファイルをクリッピングするPolyClipData
には、次の投稿を参照してください
。FUSIONを使用して複数の.lasファイルのデータをポリゴンシェープファイルにクリップする
(ツールボックスを使用して)lastoolsを使用してシェープファイルで複数のlasファイルをクリッピングするLAStools Production
には、次の投稿を参照してください:
LASToolsを使用したタイルLASデータセットからのクリッピング(for ArcGIS)
FUSION LiDAR Toolkitにはクリッピング機能(PolyClipDataツール)があり、LASToolsとは異なり、その使用法は制限されていません。ただし、SourceForgeにSVNリポジトリが存在するにもかかわらず、公開されているソースコードは不完全で非常に古いものです。コードを知らなくても続行でき、コンパイル済みのバイナリのみを使用できる場合、FUSIONはこのタスクに適しています。
WhiteboxToolsは、ClipLidarToPolygon
ツールを使用して、シェイプファイル内に含まれる複数のポリゴンにLASファイルをクリップできます。Pythonスクリプトを使用すると、次のようにツールを使用できます。
from WBT.whitebox_tools import WhiteboxTools
wbt = WhiteboxTools()
wbt.work_dir = "/path/to/data/"
wbt.clip_lidar_to_polygon(i="input.las", polygons="polygons.shp", ouput="ouput.las")
または、GUIを使用する場合は、QGISベースのプラグインまたはライブラリのバイナリダウンロードと共に配布される(wb_runner.py)WhiteboxTools Runner を使用できます。
LiDARデータセットには、さまざまな異なるフィルタリングタスクが一般的に適用されます(ポイント密度によるフィルタリング、ローパス、植生フィルタリング、平滑化タスクなど)。あなたが求めているとして、空間操作(シェープファイルを含む)、私はあなたがする方法を探し想定し、あなたのデータセットをクリップ、つまりは、シェープファイルで定義されたポリゴンの境界の外側にあるポイントを除外する。
一般に、LAStoolsはポイントデータ処理のための強力なパッケージです。これはコマンドラインツールのセットですが、シンプルなGUIを提供し、QGIS(およびちなみにArcGIS)と統合します。ツールボックスは自由にダウンロードして評価できますが、その一部のみがオープンソース(LGPL 2.1ライセンス)です。クローズドソースの部分には、目的に応じてライセンスが必要です。どの条件が当てはまるかを確認する必要があります。
LASToolsからのlasclipの使用(クローズドソース、ライセンスの確認)
クローズドソースツールの1つであるlasclipは、シェイプファイルによるクリップタスクを正確に実行します。
lasclip: LAS / LAZ / TXTファイルと1つ以上のポリゴン(建物のフットプリントなど)を含むSHP / TXTファイルを入力として受け取り、すべてのポリゴンの外側(または一部のポリゴンの内側)にあるすべてのポイントを切り取り、生き残ったものを保存します出力LAS / LAZ / TXTファイルを指します。
使い方は簡単です:
lasclip -i input_file.las -poly polygons.shp -o output_file.las -verbose
(使用方法の詳細、例、シェープファイルの要件については、lasclip READMEを確認してください)
LASToolsのlas2lasを使用する(オープンソース、基本的なクリッピングタスクのみ)
クローズドソースソフトウェアを使用できない場合:las2lasツールは単純なクリッピングタスクも実行できますが、シェープファイルで定義されたポリゴンにクリップすることはできません。たとえば、長方形、円、仰角、スキャン角度、分類、またはデータ品質でクリップできます。(使用例と詳細については、そのREADMEを参照してください。)
残念ながら、ラスクリップ機能に相当するオープンソースツールは知りません。
libLASを使用して自作のスクリプトでLASファイルにアクセスする
LASToolsは、オープンソースのBSDライセンスのlibLASライブラリに基づいています。libLASを使用してLASファイルにアクセスし、Pythonなどのカスタムスクリプトを使用してそれらをフィルタリングできます。
もちろん、処理フローを変更すると他の可能性があります(たとえば、LASをラスターに変換して後でクリップする)。ただし、最も便利な方法は、可能な限りLASで作業し続け、点群データですべてのフィルタリングを実行することです自体。
その環境でこのタスクを実行する方法を示すステップバイステップのPDALチュートリアルを作成しました。詳細については、PDALクリッピングチュートリアルを参照してください。