Pythonで利用できるLiDAR処理ツールは何ですか?


22

私が使用しているFUSIONとレーザー測量データを処理するためのコマンドラインFUSIONライダーツールキット(LTK)を。Googleの広範な検索( "Lidar Python")では、libLASおよびpyLASがPython LiDARライブラリとして生成されましたが、これらはLASデータへの読み取りおよび書き込みアクセスのみを提供するようです。

特に、点群からの天蓋表面モデルに加えて、強度と密度の画像を作成することに興味があります。FUSION LTKで可能な同じ種類のタスクを実行できる、Pythonで一般に受け入れられているツールのセットはありますか?


1
それはあなたの質問に対する直接的な答えではありませんが、私はLIDARが取得した点群データから植物の木を再構築するためのPythonソフトウェアに取り組んでいるので、おそらく私が使用しているテクノロジースタックがいくつかのアイデアを与えるかもしれません。特に、視覚化レイヤーは非常に強力なVTKを使用して構築されます。
チャウビン14

ArcMap 10.1には、他のレイヤーで表示および分析するためのLidar Datacloudフィルターを処理するための機能があります。C ++は、上記で推奨されているように、データが豊富な.lasファイルを処理するためのおそらく最良の方法です。

この回答がOPの質問であることがわかりません。彼はPythonのツールを望んでいます。C ++を提案している場合、詳細な理由でその主張をバックアップする必要があります。
Devdatta Tengshe

回答:


13

laspyは別の優れたLAS読み取り/書き込みソフトウェアです。numpy配列のデータと他の多くのPython機能の直接的な操作をサポートします。ただし、それ自体はソフトウェアを処理していません。

PDALには、パイプラインフィルタリング言語としてPythonを使用する機能がありますが、これも処理エンジンではありません。

LiDARとポイントクラウド処理のPython震えはあまりありません。これは、通常処理されるデータ量と、課題に直面したときにC / C ++に到達するための典型的な応答に関係していると思います。Pythonが向上するにつれて(PyPyが多くのことを推進し、laspyを開発するために働いた理由です)、より多くのPythonポイントクラウド処理ソフトウェアが利用可能になることを願っています。見通しは改善していると思いますが、物事はまだまだ十分ではありません。


7

LiDARデータ処理を含む多くのタイプの地理空間分析を実行するためのWhiteboxToolsと呼ばれるオープンソース(MIT)スタンドアロン(つまり、依存関係なし)ライブラリを最近リリースしました。このライブラリはRustで記述されており、Pythonベースのスクリプトを広範囲にサポートしています。たとえば、次のPythonスクリプトはWhiteboxToolsライブラリを使用して、LASファイル内のLiDARポイントのRGBカラーデータを設定します。

from whitebox_tools import WhiteboxTools

wbt = WhiteboxTools()
wbt.work_dir = "/path/to/data/"
in_lidar = "lidar_data.las"
in_image = "airphoto.tif"
out_lidar = "colourized_lidar.las"
wbt.lidar_colourize(in_lidar, in_image, out_lidar) 

WhiteboxToolsのLiDAR固有の処理ツールには、次の機能が含まれます。

  • BlockMaximum:入力LASファイルからブロック最大ラスタを作成します。
  • BlockMinimum:入力LASファイルからブロック最小ラスタを作成します。
  • FilterLidarScanAngles:スキャンファイルがスキャンしきい値よりも大きい場合、LASファイル内のポイントを削除します。
  • FindFlightlineEdgePoints:LASファイルでフライトラインのエッジに沿ったポイントを識別します。
  • FlightlineOverlap:LiDAR(LAS)ポイントファイルを読み取り、各グリッドセルでオーバーラップするフライトラインの数を含むラスターを出力します。
  • LidarElevationSlice:指定された標高範囲の間にあるLiDAR(LAS)ポイントファイル内のすべてのポイントを出力します。
  • LasToAscii:1つ以上のLASファイルをASCIIテキストファイルに変換します。
  • LidarColourize:入力画像に基づいて、LiDAR(LAS)ファイルの赤緑青の色フィールドを追加します。
  • LidarGroundPointFilter:LiDARデータセット内のグラウンドポイントを識別します。
  • LidarIdwInterpolation:逆距離加重(IDW)スキームを使用してLASファイルを補間します。
  • LidarHillshade:LASファイル内のポイントの陰影起伏値を計算し、これらのデータをRGBフィールドに保存します。
  • LidarHistogram:LiDARデータからヒストグラムを作成します。
  • LidarInfo:LiDAR(LAS)データセットに関する情報(ヘッダー、ポイントリターン頻度、分類データ、可変長レコード(VLR)およびジオキーに関する情報)を出力します。
  • LidarJoin:複数のLiDAR(LAS)ファイルを単一のLASファイルに結合します。
  • LidarKappaIndex:2つのLASファイルの分類について、カッパ協定合意(KIA)分析を実行します。
  • LidarNearestNeighbourGridding:最近傍スキームを使用したLASファイルのグリッド。
  • LidarPointDensity:LiDARデータセットの点密度の空間パターンを計算します。
  • LidarPointStats:LASポイントデータの分布を要約した複数のラスタを作成します。
  • LidarRemoveDuplicates:LiDARデータセットから重複ポイントを削除します。
  • LidarRemoveOutliers:LiDAR点群の外れ値(高点と低点)を削除します。
  • LidarSegmentation:法線ベクトルに基づいてLiDAR点群をセグメント化します。
  • LidarSegmentationBasedFilter:セグメンテーションベースのアプローチを使用して、LiDARポイントクラウド内のグラウンドポイントを識別します。
  • LidarTile:LiDAR LASファイルを複数のLASファイルにタイル化します。
  • LidarTophatTransform:Lidarデータセットで白いシルクハット変換を実行します。地上高の推定値として、これは植生キャノピーのモデリングに役立ちます。
  • NormalVectors:LASファイル内のポイントの法線ベクトルを計算し、これらのデータ(XYZベクトル成分)をRGBフィールドに保存します。

さらに、LiDARソースデータから補間されたDEMを処理するための多数のツールがあります(たとえば、機能を保持するノイズ除去、水力強制など)。詳細はユーザーマニュアルに記載されています。ソースコードはここにあり、コンパイルされたバイナリはGeomorphometry and HydrogeomaticsのWebサイトにあります


うわー!これらのツールのテストを楽しみにしています。
アーロン

私はそれがあなたのためにうまくいくことを願っています。ご質問があればメールしてください。
WhiteboxDev

LidarPointStatsはFUSIONに似ていると思いGridMetricsますか?LidarPointStatsを使用するときにグリッドメトリックが作成されるドキュメントはありますか?
アーロン

@Aaronソフトウェアを使用したことがないので、FUSIONのツールについてはあまりわかりませんが、このツールはnum_points、num_pulses、z_range、intensity_range、predom_classを出力します。詳細はこちら(github.com/jblindsay/whitebox-geospatial-analysis-tools/blob/…)およびユーザーマニュアルにも記載されています。
WhiteboxDev

@Aaronまた、lidar_point_statsツールツールがセルごとにこれらの各統計を報告していることを明確にすべきでした。つまり、ユーザーが目的の出力として指定する統計ごとにラスタが生成されます。例えば:lidar_point_stats( 'input.las'、解像度= 1.0、となる。num_points =真、num_pulses = TRUE)
WhiteboxDev

2

厳密には「Python」ライブラリではなく、他のツール、特にGRASS用のラッパーのセットですが、私が書いた「ARSF DEMスクリプト」があります。

https://github.com/pmlrsg/arsf_dem_scripts

目的の1つは、ツールmethodを指定するために使用されるフラグを使用して、さまざまなコマンドラインツール(サブプロセスを使用して呼び出される)にPython関数の共通セットを提供することでした。

DSM、強度、密度の画像を生成する使用例は次のとおりです。

from arsf_dem import dem_lidar

# DSM image (GRASS, points2grid, SPDLib, FUSION or licensed LAStools)
dem_lidar.las_to_dsm('in_las.las', 'out_dsm.tif',
                      method='points2grid')

# Intensity image (GRASS or licensed version of LAStools)
dem_lidar.las_to_intensity('in_las.las', 'out_intensity.tif',
                           method='GRASS')

# Density image (GRASS only)
dem_lidar.grass_lidar.las_to_density('in_las.las', 'out_density.tif',
                                     bin_size=10)

GRASS Pythonラッパーを介して利用可能なLiDAR処理ツールは非常に多く、/を介して利用できるものに加えて/の代わりに使用することもできますarsf_dem




弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.