サマリー
クリップ ポリゴンまたは範囲と重なる LAS または ZLAS ファイルを抽出します。
図
使用法
-
LAS データセットを入力として指定すると、それが参照する LAS ファイルのすべてのデータ ポイントが処理されます。LAS データセット レイヤーを介して目的の LAS ポイント フィルターを適用することで、分類コード、分類フラグ、およびリターン値で LIDAR データのサブセットを選択することもできます。フィルターは、レイヤー プロパティのダイアログまたは [LAS データセット レイヤーの作成 (Make LAS Dataset Layer)] ツールを使用して定義できます。
元の LIDAR ファイルで取得された LIDAR データのサブセットを抽出する場合は、このツールを使用することを検討してください。たとえば、ポリゴン境界で定義されたエリアだけで作業する必要がある場合、ポリゴンを境界フィーチャとして使用して LAS ファイルを抽出できます。
LAS ファイルを再投影するには、[出力座標系] 環境設定で対象の空間参照を指定します。
抽出範囲が抽出境界とともに定義されている場合、両者の共通範囲を使用して、抽出される LAS ファイルのカバレッジが定義されます。
ポイントの空間クラスタリングに対応しないバイナリ シーケンスの LAS ファイルに LAS ポイント レコードを保存することは珍しいことではありません。このような分布のデータが検索される場合、LAS ポイントを表すバイナリ レコードへのアクセス効率が低下する可能性があります。作成される LAS ファイルのポイントを再配置することで、視覚化やその他の空間操作のデータが最適化されます。再配置オプションが有効化されると、統計情報が自動的に計算されます。LAS ポイントの再配置をしないことを選択した場合は、統計情報の計算の有効化/無効化を選択できます。統計情報の計算により、空間検索が最適化され、クラス コードのサマリーが提供され、LAS ファイルに表示される値が返されます。ただし、このツールの処理に時間がかかるようになります。作成される LAS ファイルが ArcGIS で使用されない場合、ツールの実行時間を短縮するために、統計情報の計算を無効化することもできます。
構文
ExtractLas_3d (in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset})
パラメーター | 説明 | データ タイプ |
in_las_dataset | 処理対象の LAS データセット。 | LAS Dataset Layer |
target_folder | LAS ファイルが書き込まれるフォルダー。各出力ファイルは、入力ファイルと同じ LAS ファイル バージョンとポイント レコード形式を持ちます。 | Folder |
extent (オプション) | このツールが評価するデータの範囲を指定します。 | Extent |
boundary (オプション) | LAS ファイルを抽出する位置を定義するポリゴン境界。 | Feature Layer |
process_entire_files (オプション) | 処理範囲の適用方法を指定します。
| Boolean |
name_suffix (オプション) | 各出力 LAS ファイルの名前に追加されるテキスト。 各ファイルは、ソース ファイルからベース名を継承し、このパラメーターで指定された接尾辞が付加されます。 | String |
remove_vlr (オプション) | 余分な可変長レコードを削除するか、LAS ファイルに維持するかを決定します。
| Boolean |
rearrange_points (オプション) | LAS ファイル内のポイントを整理するかどうかを決定します。
| Boolean |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報により、LAS データセット レイヤーのフィルターおよびシンボル オプションで、LAS 属性の表示を LAS ファイル内に存在する値に制限することができます。
| Boolean |
out_las_dataset (オプション) | 出力 LAS データセット。 | LAS Dataset |
派生した出力
名前 | 説明 | データ タイプ |
out_folder | LAS ファイルが書き込まれるフォルダー。 |
コードのサンプル
ExtractLas (LAS の抽出) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
env.workspace = 'C:/data'
arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp',
name_suffix='subset', remove_vlr=True,
rearrange_points='REARRANGE_POINTS',
out_las_dataset='extracted_lidar.lasd')
ExtractLas (LAS の抽出) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Split Large LAS File
Description: Divides a large LAS file whose point distribution covers the full
XY extent of the data into smaller files to optimize performance
when reading lidar data.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las_file = arcpy.GetParameterAsText(0)
tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unit
tile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unit
out_folder = arcpy.GetParameterAsText(3) # folder for LAS files
out_name_suffix = arcpy.GetParameterAsText(4) # basename for output files
out_lasd = arcpy.GetParameterAsText(5) # output LAS dataset
try:
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las_file, temp_lasd,
compute_stats='COMPUTE_STATS')
desc = arcpy.Describe(temp_lasd)
total_columns = int(math.ceil(desc.extent.width/tile_width))
total_rows = int(math.ceil(desc.extent.height/tile_height))
digits = int(math.log10(max(cols, rows))) + 1
for row in range(1, total_rows+1):
yMin = desc.extent.YMin + tile_height*(row-1)
yMax = desc.extent.YMin + tile_height*(row)
for col in range (1, total_columns+1):
xMin = desc.extent.XMin + tile_width*(col-1)
xMax = desc.extent.XMax + tile_width*(col)
name_suffix = '_{0}_{1}x{2}'.format(out_name_suffix,
str(row).zfill(digits),
str(col).zfill(digits))
arcpy.ddd.ExtractLas(temp_lasd, out_folder,
arcpy.Extent(xMin, yMin, xMax, yMax),
name_suffix=name_suffix,
rearrange_points='REARRANGE_POINTS',
compute_stats='COMPUTE_STATS')
arcpy.env.workspace = out_folder
arcpy.management.CreateLasDataset(arcpy.ListFiles('*{0}*.las'.format(out_name_suffix)),
out_lasd, compute_stats='COMPUTE_STATS',
relative_paths='RELATIVE_PATHS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS Desktop Advanced: 次のものが必要 3D Analyst