未来を創る、テックコミュニティー

代表技術通信~小休憩、点群解析ライブラリPDALについて

草場代表
2020/12/04

こんばんは。代表の草場です。

最近はHaskellに関して勉強していましたが、ぜんぜんわからず、一旦点群に舞い戻りました。

PDALというライブラリがあります。

PDALとは、Point Data Abstraction Libraryの略です。点群データを変換して処理するためのC/C++オープンソースのライブラリとアプリケーションです。PDALはLiDARデータに限定されていませんが、ライブラリ内の多くのツールの焦点やきっかけはLiDARに由来しています。

PDALでは、点群に対する操作をステージのパイプラインにまとめることができます。これらのパイプラインは、宣言的な JSON 構文で記述することも、利用可能な API を使って構築することもできます。ASPRS LASデータをデータベースにロードするタスクがあるかもしれませんが、その途中で共通の座標系に変換したいとします。1つの選択肢としては、LASデータを読み込み、必要に応じて再投影し、データベースに適切な形式でデータを挿入するために必要な操作を処理する特殊なモノリシックプログラムを書くことが考えられます。このアプローチには、慎重に計画を立てないと、操作に新しい小さな微調整や機能を追加していくうちに、すぐに制御不能に陥る可能性があるという明確な欠点があります。このアプローチは非常に特殊で、LASデータを読み取るコンポーネントをデータを変換するコンポーネントとは別に簡単に再利用することができません。

PDALのアプローチは、一連のコンポーネントをチェーン化し、それぞれが特定の機能をカプセル化します。コンポーネントによって、再利用、構成、分離が可能になります。PDALでは、点群処理オペレーションを一連のステージとして構成されたパイプラインとして捉えています。例えば、LAS Readerステージ、Reprojectionステージ、PostgreSQL Writerで構成されたシンプルなパイプラインがあるかもしれません。この操作を実行するための単一のモノリシックな専用プログラムを書くのではなく、一連のステップや操作として動的に構成することができます。

 

PDALが得意とする業務とは?

PDALは点群データ変換のワークフローを得意としています。コンテンツに抽象的なAPIを提供することで、ユーザーはデータにアルゴリズムを適用することができ、ユーザーは多くのデータフォーマットの問題に悩まされることから解放されます。PDALのフォーマットフリーの心配は、多少のオーバーヘッドコストを伴います。ほとんどの場合、これは重要ではありませんが、特定のデータを扱う特定の処理ワークフローでは、専用のツールの方が確実に上回るでしょう。

可能性のあるパフォーマンスペナルティやデータモデルのインピーダンスと引き換えに、開発者は抽象的なAPIを介してデータにアクセスする自由、手の届く範囲でデータに適用するための多数のアルゴリズム、そして業界で最も完全な点群フォーマットドライバのセットを手に入れることができます。PDALはまた、わかりやすいコマンドラインを提供し、Numpyを介してシンプルな汎用Python処理を拡張しています。これらの機能は、ソフトウェア開発者、データ管理者、科学者にとって魅力的なものとなっています。

Windowsの場合、Anacondaでインストールできます。

サンプルデータの取得

遊ぶためのサンプルデータが必要なので、autzen.lazファイルをダウンロードします。ターミナル内(Windowsを想定)で、次のコマンドを実行します。

explorer.exe https://github.com/PDAL/data/raw/master/autzen/autzen.laz

ダウンロードダイアログで、ファイルをダウンロードフォルダ(例:C:Users\hobuDownloads)に保存します。最初の点だけをプリントするには、以下のコマンドを実行してください (ファイルを保存した場所に応じて別のパスに置き換えてください)。

pdal info C:\Users\hobu\Downloads\autzen.laz -p 0

コマンドの呼び出しで何が起こっているのかを要約してみましょう。

1.pdalです。pdalコマンドを実行します。
2.infoを実行します。データのinfoを実行したいと思います。
3.autzen.laz。情報を取得したいautzen.lazファイル。

なんと、bad conversion。なぜだろう。とにかく使います。

この記事を書いた人
草場代表
エディター