LAS クラス コードの変更(Change LAS Class Codes) (3D Analyst)
サマリ
LAS データセットが参照する LAS ファイルのクラス コード値を変更します。
使用法
-
LAS データセットが参照するすべての LAS ファイルがこのツールによって評価されます。ただし、変更されるのは、提供されたクラス コードを含むファイルだけです。
このツールを使用して、LAS 1.1 仕様の標準化されたクラス コードの導入の前に作成された LAS ファイルのデータ ポイントの分類を更新します。
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 定義用に予約
構文
パラメータ | 説明 | データ タイプ |
in_las_dataset |
入力 LAS データセット。 | LAS Dataset Layer |
class_codes [[current_class new_class],...] | 現在のクラス コード値と新しいクラス コード値の各ペアを、スペースで区切った文字列または整数のリストとして指定します。たとえば、現在のクラス コード 5 を 2 に変更する場合は、「5 2」または [5, 2] と指定します。複数のクラス コードは、セミコロンで区切った文字列(「5 2; 8 3; 1 4」)、文字列のリスト(たとえば、[[5, 2], [8, 3], [1, 4]])として入力できます。 | Value Table |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報が存在することにより、LAS データセット レイヤのフィルタおよびシンボル オプションで、LAS ファイル内に存在する LAS 属性値のみを表示できます。
| Boolean |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.ChangeLasClassCodes_3d('test.lasd', [[5, 2], [3, 1], [4, 6]],
'COMPUTE_STATS')
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Update LAS 1.0 Classification to ASPRS 1.1 Specs
Description: Updates classification of version 1.0 LAS files to conform to
the standardized class codes introduced in the 1.1 specifications.
The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)
try:
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ChangeLasClassCodes(lasd, reclassList, calcStats)
# Report messages
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)