LAS データセット レイヤの作成(Make LAS Dataset Layer) (データ管理)
サマリ
LAS ファイルにフィルタを適用し、LAS データセットから参照されるサーフェス制御を有効化または無効化できる LAS データセット レイヤを作成します。
使用法
このツールはメモリ内のテンポラリ レイヤを作成し、[レイヤ ファイルの保存(Save To Layer File)] ツールを使用してレイヤ ファイルとして保存することができます。
-
LAS ポイントは、地表、建物、水域などの LIDAR リターンが検出する多数の物質に対応するカテゴリに分類できます。American Society for Photogrammetry and Remote Sensing(ASPRS)によって定義されている LAS ファイル バージョン 1.1、1.2、および 1.3 の分類コードは、以下のとおりです。
分類値
分類タイプ
0
分類不可
1
未分類
2
地表
3
低植生
4
中植生
5
高植生
6
建物
7
ノイズ
8
モデル キー
9
水域
10
ASPRS 定義用に予約
11
ASPRS 定義用に予約
12
オーバーラップ
13–31
ASPRS 定義用に予約
注意:LAS 1.0 仕様には、0 〜 255 の範囲の分類コードはありますが、標準化された分類スキーマはありません。通常、1.0 のファイルで使用されている分類コードは、データ ベンダによって定義され、補助情報を通じて提供されます。
このレイヤは、LAS データセットに対応する他のジオプロセシング ツールへの入力を生成するための中間データとして使用することができます。たとえば、LIDAR のファースト リターンによる地表面 データからラスタまたは TIN データセットを作成したい場合は、フィルタ オプションを使用して、2 番目のクラス コードとファーストリターン値を選択します。作成される LAS データセット レイヤを [LAS データセット → ラスタ(LAS Dataset to Raster)] ツールまたは [LAS データセット → TIN(LAS Dataset to TIN)] ツールで使用して、必要な出力を得ることができます。
構文
パラメータ | 説明 | データ タイプ |
in_las_dataset |
入力 LAS データセット。 | LAS Dataset Layer |
out_layer |
作成される LAS データセット レイヤの名前。スラッシュまたはバックスラッシュに続くテキストは、グループ レイヤを示すために使用されます。 | Las Dataset Layer |
class_code [class_code,...] (オプション) |
LAS データ ポイントのクエリ フィルタとして使用する分類コード。有効な値は 1 から 32 までの範囲です。デフォルトではフィルタは適用されません。 | Long |
return_values [return_values,...] (オプション) |
データ ポイントのフィルタリングに使用するリターンを指定します。何も指定されていない場合は、すべてのリターンが使用されます。有効なリターンは、1 〜 5 の数字と以下のキーワードを含みます。
| String |
no_flag (オプション) | 分類フラグが割り当てられていないデータ ポイントを表示および解析のために有効化するかどうかを示します。
| Boolean |
synthetic (オプション) | Synthetic のフラグが設定されたデータ ポイント、つまり LIDAR 以外のデータ ソースからのポイントを表示および解析のために有効化するかどうかを示します。
| Boolean |
keypoint (オプション) | Model-Key ポイントのフラグが設定されたデータ ポイント、つまり間引きの対象外の重要な測定値を表示および解析のために有効化するかどうかを示します。
| Boolean |
withheld (オプション) | Withheld のフラグが設定されたデータ ポイント(通常は、不要なノイズ測定値を示す)を表示および解析のために有効化するかどうかを示します。
| Boolean |
surface_constraints [surface_constraints,...] (オプション) |
レイヤ内で有効化されるサーフェス制御フィーチャの名前。すべてのサーフェス制御がデフォルトで有効となります。 | String |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.MakeLasDatasetLayer_management('Baltimore.lasd', 'Baltimore Layer',
2, 'LAST', 'INCLUDE_UNFLAGGED',
'EXCLUDE_SYNTHETIC', 'INCLUDE_KEYPOINT',
'EXCLUDE_WITHHELD')
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''*********************************************************************
Name: Export Elevation Raster from Ground LAS Measurements
Description: This script demonstrates how to export
ground measurements from LAS files to a raster using a
LAS dataset. This sample is designed to be used as a script
tool.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
surfCons = arcpy.GetParameterAsText(2)
classCode = arcpy.GetParameterAsText(3)
returnValue = arcpy.GetParameterAsText(4)
spatialRef = arcpy.GetParameterAsText(5)
lasD = arcpy.GetParameterAsText(6)
outRaster = arcpy.GetParameterAsText(7)
cellSize = arcpy.GetParameter(8)
zFactor = arcpy.GetParameter(9)
if arcpy.ProductInfo == 'ArcView':
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasD, recursion, surfCons, sr)
# Execute MakeLasDatasetLayer
lasLyr = arcpy.CreateUniqueName('Baltimore')
arcpy.management.MakeLasDatasetLayer(lasD, lasLyr, classCode, returnValue)
# Execute LasDatasetToRaster
arcpy.conversion.LasDatasetToRaster(lasLyr, outRaster, 'ELEVATION',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', cellSize, zFactor)
arcpy.GetMessages()
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
finally:
arcpy.management.Delete(lasLyr)